Greifen Sie auf Variablen in einer Schleife nach Namen zu

8

Ich arbeite an einem Android-Projekt, und ich habe viele Zeichensätze. Diese Zeichen werden alle wie icon_0.png , icon_1.png ... icon_100.png benannt. Ich möchte alle Ressourcen-IDs dieser Zeichenobjekte zu einer ArrayList von Ganzzahlen hinzufügen. (Für diejenigen, die Android nicht kennen, nur Java, ich spreche über statische Variablen, in einer statischen inneren Klasse einer Klasse, wie R.drawable.icon_0 . Alle diese statischen Variablen sind Ganzzahlen.)

Gibt es einen effizienteren Weg dies zu tun, als sie einzeln hinzuzufügen? Wie

%Vor%

Kann ich sie irgendwie durchlaufen? Wie

%Vor%

Ich habe keine Kontrolle über die Datei, in der diese statischen Ganzzahlen sind, und ich kann die Zeichen in Laufzeit nicht erstellen.

Jede Hilfe wäre willkommen!

BEARBEITEN

Okay, ich habe die Antworten gelesen, aber ich habe ein großes Problem: Ich habe keinen Zugriff auf Context Instanzen, wo ich dieses Array / diese Liste von IDs erstellen muss (ich mache das in einem statischen initialzer Block) , so die Methode getResources (), was zwei der vorgeschlagenen Antworten nicht funktionieren. Gibt es einen anderen Weg, dies zu tun?

    
Balázs Édes 05.08.2012, 06:40
quelle

4 Antworten

0

Eine Möglichkeit wäre die Verwendung der Reflexions-API.

Etwas in die Richtung ...

%Vor%

Ich habe das nicht getestet, aber Sie bekommen die Idee.

    
nullpotent 05.08.2012, 06:52
quelle
4

Erstellen Sie eine XML-Datei im Ordner values in Ihrem resource -Verzeichnis.

%Vor%

Gehen Sie durch den folgenden Code, Sie werden die Idee bekommen.

%Vor%     
Rahmathullah M 05.08.2012 07:08
quelle
3

Sie können das versuchen. YourClassName.class.getFields();

Field[] fields = R.drawable.class.getFields();

Sie können alle Felder iterieren, und Sie müssen sie möglicherweise filtern, wenn Sie zusätzliche Felder haben, als Sie benötigen.

    
Vaandu 05.08.2012 06:49
quelle
0

Hier ist, was ich getan habe:

%Vor%

Ich bin mir sicher, dass es nicht der schnellste Weg ist, aber es funktioniert. Ich werde die Lösung von AljoshaBre akzeptieren, denn seine Antwort hat mich zu dieser Lösung geführt.

Danke allen für die Hilfe!

    
Balázs Édes 05.08.2012 10:27
quelle

Tags und Links