Utilisation d'un tableau avec un adaptateur de base pour remplir une vue de liste. Il y a beaucoup de drawables facultatifs et ainsi un commutateur est très inefficace. J'ai essayé de mettre en place un système à deux doublure en utilisant getResources(). GetIdentifier(), mais toutes les tentatives ont échoué retour id ressources de 0 x 0000.Définition d'une ressource d'image pouvant être dessinée avec une chaîne programmatique
code de travail
try {
final ImageView star = convertView.findViewById(R.id.star);
final JSONObject object = list.getJSONObject(i);
switch (object.getString("star")){
case "a":
star.setImageResource(R.drawable.stara);
break;
case "b":
star.setImageResource(R.drawable.starb);
break;
case "c":
star.setImageResource(R.drawable.starc);
break;
case "d":
star.setImageResource(R.drawable.stard);
break;
}
Je besoin de quelque chose en utilisant quelque chose comme cela, mais getIdentifier() méthode
final ImageView star = convertView.findViewById(R.id.star);
star.setImageDrawable(getActivity().getResources().getDrawable(getActivity().getResources().getIdentifier("star" + object.getString("star") + ".png", "drawable", getActivity().getPackageName())));
"star" + object.getString ("étoile") + ".png" est le nom exact drawable dans le dossier des ressources (stara.png, starb.png, ....)
Je continue à obtenir cette exception avec la méthode getIdentifier()
No package identifier when getting value for resource number 0x00000000
Comment mettre en œuvre correctement ceci ou une meilleure façon en utilisant une chaîne de programmation pour déterminer la ressource de nom drawable être mis à un imageview?
Retirez '+ « .png »'. Vous ne spécifiez pas l'extension pour les ressources. –