25 Stimmen

Android und Abrufen einer Ansicht mit als String gecasteter id

Wenn Sie im Java-Code eines Android-Projekts die Referenz für eine View-Ressource benötigen, können Sie etwas wie folgt tun:

View addButton = findViewById(R.id.button_0);

In der obigen R.id.button_0 handelt es sich nicht um einen String. Ist es möglich, dynamisch auf eine Ressource durch einen String zu verweisen, wie z.B. " R.id.button_0 "?

Ich möchte auf eine Schaltfläche mit " R.id.button_%i "wo %i wird durch einen gültigen Index ersetzt.

56voto

Cristian Punkte 195886
int resID = getResources().getIdentifier("button_%i",
    "id", getPackageName());
View addButton = findViewById(resID);

donde %i wird durch einen gültigen Index ersetzt.

Le site getResources() Methode gehört zu den Context Klasse, so dass Sie diese direkt aus einer Activity . Wenn Sie sich nicht in einer Aktivität befinden, dann verwenden Sie einen Kontext für den Zugriff: ( myCtxt.getResources() ).

4voto

jsonfry Punkte 1997

Sie könnten versuchen, alle gewünschten IDs in ein Array zu packen und dieses Array dann verwenden, um dynamisch auf Ihre Ressourcen zu verweisen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X