Android getResources (). GetStringArray () variables
J'ai un fichier xml, où il y a des chaînes et des cordes-les tableaux. J'ai une classe où je clique sur un listitem, et dans l'autre classe j'ai une liste d'autres articles. Dans le xml il y a de la chaîne dont les noms sont les cliqué éléments modifiés nom, et les valeurs sont la chaîne-matrices de nom. J'ai trouvé une solution comment ajouter une variable à la getResources(9.getStringArray() mais ça ne fonctionne pas. Le programme démarre, mais lorsque je clique sur un des listitem mon activité s'arrête juste au travail.
Mon fichier de classe:
String artistpicked = extras.getString("artist");
String[] firstW = artistpicked.split(" ");
firstW[0] = firstW[0].trim();
String albumSearch = firstW[0] + "_code";
int getRes = getResources().getIdentifier(albumSearch, "string", getPackageName());
String setRes = String.valueOf(getRes);
int getRes2 = getResources().getIdentifier(setRes, "array", getPackageName());
String[] albums = getResources().getStringArray(getRes2);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, albums));
TextView t = (TextView) findViewById(R.id.albumName);
t.setText(setRes);
Le TextView est là pour vérifier les variables. Le albumSearch donne "modifiedartistpicked_code", c'est bon. Le getRes donne la valeur de l'xml ("something_array"), la setRes donne actuelle numéro d'identification (id qui le getStringArray oblige). Le getRes2 donne le même que getRes il est juste là pour vérifier que cela fonctionne bien. Quand j'en commentaire les deux lignes suivantes, la Chaîne d'albums[], et setListAdapter ensuite, le programme fonctionne, mais il n'a pas une liste des articles.
Le fichier xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="artists_array">
<item>code1 example</item>
<item>code2 example</item>
</string-array>
<string-array name="code1_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="code2_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string name="code1_code">code1_array</string>
<string name="code2_code">code2_array</string>
</resources>
J'espère que j'ai été capable d'écrire ce que je voudrais faire, et quel est le problème 🙂
Mise à jour:
@Marc Bernstein: Parce que je ne sais pas c'est code1_array. J'ai d'abord fait beaucoup de si, et quand, le repris de l'élément de x, puis j'ai lu le R. tableau.x_array, etc...
Mais j'ai eu quel était le problème, il y a des majuscules, il int nom des chaînes de caractères au format xml. C'est pourquoi je déteste xml, le problème est toujours là 🙂 Ce xml est juste un exemple, l'original est beaucoup plus grand, pourquoi personne n'a été en mesure d'aider. La prochaine fois, je vais être beaucoup plus prudent.
Et aussi je l'ai fait maintenant plus de plus simple parce que vous avez droit, il était trop compliqué.
source d'informationauteur matthew3r
Vous devez vous connecter pour publier un commentaire.
Le coupable est probablement
Au lieu de faire
Pourquoi ne pas simplement utiliser
?
De toute façon, à partir de ce que vous avez posté, je ne pense pas que le "tableau" identifiant existe réellement à l'intérieur de votre strings.xml fichier. Je vois un code1_array & code2_array.
C'est parce qu'il essaie de déterminer dynamiquement le tableau qu'il veut utiliser.
L'id de
String[] albums = getResources().getStringArray(
R.array.code1_array
);
est donné, disons, à la saisie de l'utilisateur, certains spinner/edittext boîte.C'est au lieu d'utiliser une base de données, en utilisant seulement quelques chaînes à partir du fichier xml.