# EditText



## Crue (11. Apr 2014)

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:In die Zwischenablage kopieren


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]_


----------



## dzim (16. Apr 2014)

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).


```
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


----------

