Heim >Java >javaLernprogramm >Wie kann ich Android-Ressourcen-IDs und die entsprechenden Zeichenfolgen effizient abrufen?

Wie kann ich Android-Ressourcen-IDs und die entsprechenden Zeichenfolgen effizient abrufen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-31 17:49:10875Durchsuche

How Can I Efficiently Retrieve Android Resource IDs and Their Corresponding Strings?

Wie erhalte ich eine Ressourcen-ID und eine Zeichenfolge aus einer Android-Ressourcendatei?

In der Android-Entwicklung ist es notwendig, eine Ressourcen-ID an Methoden zu übergeben innerhalb der Klassen. Normalerweise benötigen Entwickler sowohl die ID als auch die entsprechende Zeichenfolge, die dieser Ressource zugeordnet ist. Ein häufiges Beispiel für diese Situation ergibt sich bei der Arbeit mit Bild-Drawables.

Bedenken Sie die Ressourcen-ID R.drawable.icon, die das Symbolbild darstellt. Um sowohl die ID als auch die Zeichenfolge „Symbol“ zu verwenden, können verschiedene Ansätze untersucht werden:

Eine Lösung besteht darin, die Methode Resources.getIdentifier() zu verwenden:

int resId = getResources().getIdentifier("icon", "drawable", packageName);

Hier getResources() bezieht sich auf das Kontextobjekt, packageName ist der Paketname der Anwendung und „icon“ stellt die Zeichenfolgenkennung dar. Diese Methode kann jedoch relativ langsam sein, insbesondere in Release-Builds mit aktivierter Code-/Ressourcenverkleinerung.

Ein alternativer Ansatz besteht darin, Reflektion zu verwenden, um auf das gewünschte Ressourcenfeld zuzugreifen:

Class resClass = R.drawable.class;
Field field = resClass.getDeclaredField("icon");
int id = field.getInt(null);

Dies Die Methode greift direkt auf das Ressourcenfeld zu und bietet eine schnellere Leistung als der vorherige Ansatz. Es kann jedoch zu Problemen kommen, wenn die Ressourcen schrumpfen oder wenn sich Ressourcennamen von Zeichenfolgenbezeichnern unterscheiden.

Zusätzliche Überlegungen:

Bei der Verwendung von Reflektion ist Folgendes unbedingt zu beachten Diese Code-/Ressourcenverkleinerung kann dazu führen, dass der Ansatz in Release-Builds unwirksam wird. Darüber hinaus verfügen einige Ressourcen, z. B. mit definierte Zeichenfolgen, möglicherweise nicht über Feldnamen, die der tatsächlichen Zeichenfolgenkennung entsprechen.

Das obige ist der detaillierte Inhalt vonWie kann ich Android-Ressourcen-IDs und die entsprechenden Zeichenfolgen effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn