Mes fichiers de ressources contiennent de nombreux tableaux de chaînes et je souhaite y accéder par programme en fonction des entrées de l’utilisateur.
int c = Getter.getCurrentNumber(); Ssortingng[] info = getResources().getSsortingngArray(R.array.n_);
Donc si c == 12, info devrait être le tableau de chaînes portant le nom “n_12”. Y a-t-il un moyen de faire cela, en évitant de faire une instruction switch avec des centaines de cas?
Merci
Vous pouvez obtenir l’identifiant de la ressource comme ça
int c = Getter.getCurrentNumber(); Ssortingng resource = "n_" + c; int id = getResources().getIdentifier(resource, "array", "com.your.project");
Ensuite, utilisez simplement cet identifiant
Ssortingng[] info = getResources().getSsortingngArray(id);
Regardez ici pour un autre exemple sur getResources().getIdentifier()
.
Si vous voulez obtenir une ressource par nom (par programme) et que vous ne savez pas comment l’adresser par son nom (mais que vous savez comment y accéder par R.), vous pouvez procéder comme suit:
Log.d("", context.getResources().getResourceName(R.id.whichYouAlreadyKnow) );
(Remarque: R.id.whichYouAlreadyKnow peut être R.ssortingng. * R.drawable. * Etc …)
Maintenant vous connaissez le nom exact de l’adresse de la ressource
int id = getResources().getIdentifier(resource_name_that_printed_above, null, null);
À votre santé