Comment faire pour récupérer tableau 2D de la chaîne xml de ressources pour Android?
Supposons que j'ai stocké à 2 dimensions de la matrice de dans android de ressources comme indiqué ci-dessous. Comment puis-je obtenir en java collection comme Arraylist?
<resources>
<string-array name="countries_array">
<item>
<name>Bahrain</name>
<code>12345</code>
</item>
<item>
<name>Bangladesh</name>
<code>54545</code>
</item>
<item>
<name>India</name>
<code>54455</code>
</item>
</string-array>
</resources>
Par exemple dans le cas de 1 dimensions, tableau, nous pouvons le faire en utilisant
getResources().getStringArray(R.array.countries_array);
Lorsque le countries_array est comme
<resources>
<string-array name="countries_array">
<item>Bahrain</item>
<item>Bangladesh</item>
<item>India</item>
</string-array>
</resources>
OriginalL'auteur Imon | 2012-07-07
Vous devez vous connecter pour publier un commentaire.
La
<string-array>
élément d'un fichier de ressources ne peut être utilisé pour la dimension des tableaux. En d'autres termes, tout ce qui est entre<item>
et</item>
est considéré comme une seule chaîne.Si vous souhaitez stocker des données dans la façon dont vous décrivez (pseudo-XML), vous aurez besoin d'obtenir les éléments comme un seul
String[]
à l'aide degetStringArray(...)
et d'analyser les<name>
et<codes>
éléments de vous-même.Personnellement, je serais probablement aller avec un de format réduit, comme...
...puis il suffit d'utiliser
split(...)
.Sinon, définir chaque
<item>
comme un JSONObject comme...' '
avec un caractère spécial c'est à dire{"title":"WHITE SHOW"}
. Sinon, rien ne sera affiché. son plus caractéristique de JSONOriginalL'auteur Squonk
Au lieu de valeurs multiples entrées, je écrit sur un autre approche où vous pouvez stocker vos objets complexes comme dans un tableau, puis le suffixe de nom avec un différentiel de type entier. Boucle à travers eux et de créer une liste d'objets fortement typés à partir de là si nécessaire.
Ensuite, vous pouvez créer une méthode statique pour les récupérer:
Il peut être consommé comme ceci maintenant:
L'ajout de
@SuppressWarnings("ResourceType")
à l'encapsulation méthode ou classe résout ce problème. (Cela peut se produire uniquement dans les versions plus récentes d'Android Studio.)OriginalL'auteur Basem