D'abord, vous connaissez le nom de la ressource. Vous le mettez même dans votre appel Log
. Ainsi, une option serait d'utiliser getIdentifier()
sur un objet Resources
(généralement obtenu en appelant getResources()
sur votre Activity
ou autre Context
).
Ou, étant donné que vous avez l'objet Field
, appelez f.getInt(R.string.class)
.
Dans les deux cas (getIdentifier()
ou getInt()
), vous avez maintenant l'identifiant numérique de la ressource, à quel point vous pouvez appeler getString()
sur votre Activity
pour obtenir la valeur réelle String
. L'utilisation de la réflexion - que ce soit directement ou via getIdentifier()
- va être lente. S'il vous plaît évitez l'approche que vous essayez si possible. Si vous devez absolument utiliser la réflexion, assurez-vous de mettre en cache vos résultats, afin de ne pas avoir à faire les mêmes recherches à plusieurs reprises.
Très apprécié. Bien sûr, cela semble si évident maintenant. Et, oui, je suis pleinement conscient de la dépense d'utilisation de la réflexion. – gssi
Hors sujet, mais lié à la ressource de chaîne: Si l'application est monolingue, et de petits toasts comme _ "Veuillez entrer une valeur inférieure à 100" _ doit être affiché, devrions-nous encore suivre la méthodologie _String Resource_? –