# Android-App Reflection



## Restor (22. Sep 2013)

Ich arbeite gerade an einer App. Dabei habe ich sehr viele Buttons in welche Nummerierte Namen besitzen z.B.: "Button11, Button13".

Wenn ich mit diesen Buttons Arbeiten will funktioniert das einfach mit der vorgefertigten Methode:


```
final Button button10 = (Button) findViewById(R.id.Button10);
//Dabei wird von R.id.Button10 der Wert genommen und zurückgegeben. Das sind int Variablen in welchen die ID der buttons gespeichert ist
```

Aber bei einer solch großen Anzahl von Buttons ist es einfach nicht machbar diese per Hand aufzurufen.
Deswegen brauche ich einen Weg das ganze Dynamischer zu machen. Das hab ich mir in etwa so vorgestellt.:idea:


```
String btName = "Button10";
				
				Button mButton = (Button) findViewById(R.id.(btName));
```

Wenn das so funktionieren würde könnte ich mir Dynamisch die Strings erzeugen und alle Buttons in ein Array einfügen so wie ich das brauche.

Nachdem das aber nicht so einfach Funktioniert wie ich es da versucht habe. Hab ich mich ein wenig Schlau gemacht und denke das so etwas mit einer Reflection zu lösen ist.

Die erklärungen und Tutorials zu Reflection haben mir aber auch nicht weitergeholfen.
Und jetzt bin ich Ratlos. Das einzige was mir einfallen würde wäre in der Vorgefertigten Klasse "id" herumzuprogrammieren so das ich eine Methode hab die einen String erhält und mit sämtliche Variablen in der Klasse vergleicht und die Passende id zurückgibt.

Da ich das gern vermeiden würde, wollte ich mal Nachfragen ob mir jemand bei der Reflection helfen könnte. Oder evtl. einen noch einfacheren Weg weiß wie ich den Aufruf Automatisieren kann.

Mfg


----------



## eRaaaa (23. Sep 2013)

Da brauchst du nicht groß mit Reflection rum zu schlagen, getIdentifier ist das Stichwort


```
int id = getResources().getIdentifier("Button10", "id", getPackageName());
		Button b10 = (Button) findViewById(id);
```


----------



## Restor (23. Sep 2013)

Danke, das ist perfekt


----------

