Maison > Java > javaDidacticiel > Comment puis-je récupérer efficacement les ID de ressources Android et leurs chaînes correspondantes ?

Comment puis-je récupérer efficacement les ID de ressources Android et leurs chaînes correspondantes ?

Mary-Kate Olsen
Libérer: 2024-12-31 17:49:10
original
862 Les gens l'ont consulté

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

Comment obtenir l'ID de ressource et la chaîne à partir du fichier de ressources Android ?

Dans le développement Android, il devient nécessaire de transmettre un ID de ressource aux méthodes au sein des classes. En règle générale, les développeurs ont besoin à la fois de l'ID et de la chaîne correspondante associée à cette ressource. Un exemple courant de cette situation se produit lorsque vous travaillez avec des images dessinables.

Considérez l'ID de ressource R.drawable.icon, qui représente l'image de l'icône. Pour utiliser à la fois l'ID et la chaîne « icône », différentes approches peuvent être explorées :

Une solution consiste à utiliser la méthode Resources.getIdentifier() :

int resId = getResources().getIdentifier("icon", "drawable", packageName);
Copier après la connexion

Ici, getResources() fait référence à l'objet contextuel, packageName est le nom du package de l'application et « icône » représente l'identifiant de chaîne. Cependant, cette méthode peut être relativement lente, en particulier dans les versions avec la réduction du code/des ressources activée.

Une approche alternative consiste à utiliser la réflexion pour accéder au champ de ressource souhaité :

Class resClass = R.drawable.class;
Field field = resClass.getDeclaredField("icon");
int id = field.getInt(null);
Copier après la connexion

Ceci La méthode accède directement au champ de ressource, offrant des performances plus rapides que l’approche précédente. Cependant, il peut rencontrer des problèmes en cas de diminution des ressources ou lorsque les noms de ressources diffèrent des identifiants de chaîne.

Considérations supplémentaires :

Lors de l'utilisation de la réflexion, il est crucial de noter que la réduction du code/des ressources peut rendre l'approche inefficace dans les versions de version. De plus, certaines ressources, telles que les chaînes définies à l'aide de , peuvent ne pas avoir de noms de champ correspondant à l'identifiant réel de la chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal