Ressource Android – Tableau de tableaux

J’essaie d’implémenter une structure de données de ressource qui inclut un tableau de tableaux, en particulier des chaînes. Le problème que je rencontre est de savoir comment récupérer les objects du sous-tableau et leurs valeurs spécifiques. Voici à quoi ressemble mon fichier de ressources ….

    1 item one     2 item two     3 item three     

Ensuite, dans mon code Java, je récupère le tableau et tente d’accéder aux sous-éléments comme ça …

 TypedArray typedArray = getResources().obtainTypedArray(R.array.array0); TypedValue typedValue = null; typedArray.getValue(0, typedValue); 

A ce stade, l’object typedArray devrait représenter le tableau “array01”, mais je ne vois pas comment récupérer les éléments de chaîne “id” et “title”. Toute aide serait appréciée, merci d’avance.

Vous pouvez presque faire ce que vous voulez. Vous devez déclarer chaque tableau séparément, puis un tableau de références. Quelque chose comme ça:

  1 item one    @array/array01   

Ensuite, dans votre code, vous faites quelque chose comme ceci:

 Resources res = getResources(); TypedArray ta = res.obtainTypedArray(R.array.array0); int n = ta.length(); Ssortingng[][] array = new Ssortingng[n][]; for (int i = 0; i < n; ++i) { int id = ta.getResourceId(i, 0); if (id > 0) { array[i] = res.getSsortingngArray(id); } else { // something wrong with the XML } } ta.recycle(); // Important! 

selon @Ted Hopp réponse, de manière plus élégante:

  1 2 3   name 1 name 2 name 3   @array/id_array @array/name_array  

assurez-vous que le nombre de lignes des sous-tableaux est identique.
Profitez du code d’écriture pour accéder aux cellules du tableau!
Android est encore un enfant tout en conservant la vilaine balise “item” de TypedArray “array0”.
à mon avis, le plus flexible devrait être:

   1 2 3   name 1 name 2 name 3   

mais ne fais pas ça parce que ce n’est pas Android 🙂

https://developer.android.com/guide/topics/resources/more-resources.html#Color

    @drawable/home @drawable/settings @drawable/logout   #FFFF0000 #FF00FF00 #FF0000FF   

Ce code d’application récupère chaque tableau puis obtient la première entrée de chaque tableau:

 Resources res = getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0); 

Un tableau n’est pas une paire nom / valeur. Vous pouvez uniquement accéder aux éléments par numéro. La syntaxe du fichier XML est incorrecte. Cela devrait être comme ça:

  text_ssortingng1 text_ssortingng2