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);
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);
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
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!