EditText

Crue

Mitglied
Guten Tag

Ich habe da ein kleines Problem:

Ich habe diese Methode geschrieben um den Text in den einzelnen EditTexts zu ändern, nru mein Problem ist, dass ich sehr viele EditTexte habe nun möchte ich aber nicht immer schreiben

EditText Feld = (EditText)findViewById(R.id.Reihe1)

sondern dass etwas in der art:

EditText Feld = (EditText)findViewById(R.id.Reihe);

Hat da jmd vielleicht eine gute Idee ?

Java:
public void infosLaden(){
		
		Send.laden();
		zahl=Send.getZahl();		
		for(int i=0;i<zahl;i++){
			
			Text=Send.getText();			
			EditText Feld = (EditText)findViewById(R.id.Reihe1);
			Feld.setText(Text);
		}
}
[XML] <EditText
android:id="@+id/Reihe2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

<EditText
android:id="@+id/Reihe3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

<EditText
android:id="@+id/Reihe4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />

<EditText
android:id="@+id/Reihe5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
...........
[/XML]
 
Zuletzt bearbeitet:

dzim

Top Contributor
Für ordentlichen Code: Nein.
Aber: Android ist Java - also könntest du auch "einfach" Reflection verwenden.

Pack das folgende Ding in eine eigene Methode und finde so das richtige Feld der R.id-Klasse und lass dir den "int"-Wert zurückgeben (das ist dann die Ressourcen-ID, die du sonst direkt per R.id.irgendwas anpsrechen würdest).

Java:
		Field[] fields = R.id.class.getFields();
		Object instance = null;
		try {
			instance = R.id.class.newInstance();
		} catch (InstantiationException e1) {
			e1.printStackTrace();
		} catch (IllegalAccessException e1) {
			e1.printStackTrace();
		}
		for (Field f : fields) {
			try {
				Log.v(getClass().getSimpleName(), String.format("%s ==> %s [%s]", f.getName(), f.getType().getSimpleName(), f.get(instance)));
				// filter the correct field and hide the log (just for tests)
				// if you found your field, return its value as I did within the Log
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			}
		}

Viel Spass,
Daniel
 

Ähnliche Java Themen

Neue Themen


Oben