2012-04-06 6 views
1

Kann ich mich auf Stringarrays innerhalb der "strings.xml" Ressourcendatei verlassen, um in der gleichen Reihenfolge geparst/deserialisiert zu werden jedes Mal?Werden Zeichenketten "strings.xml" immer in derselben Reihenfolge geparst/deserialisiert?

Wenn jemand irgendeine Dokumentation zitieren kann, die diese Garantie eindeutig ausspricht, würde ich es begrüßen. Zumindest bieten sie eine beträchtliche Menge an Erfahrung mit diesem Thema.

Ist dies auch eine Best Practice oder fehlt mir eine einfachere Lösung?

Hinweis: Dies wird eine kleine Liste sein, also bin ich nicht auf der Suche nach einer komplizierteren Datenbank oder benutzerdefinierten XML-Lösung zu implementieren, es sei denn, ich muss unbedingt.

<!--KEYS (ALWAYS CORRESPONDS TO LIST BELOW ??)--> 
<string-array name="keys"> 
    <item>1</item> 
    <item>2</item> 
    <item>3</item> 
</string-array> 

<!--VALUES (ALWAYS CORRESPONDS TO LIST ABOVE ??)--> 
<string-array name="values"> 
    <item>one</item> 
    <item>two</item> 
    <item>three</item> 
</string-array> 
+1

Die Frage ist schwer zu verstehen. String-Arrays gehören nicht zu string.xml, sondern zu values.xml. Die Korrespondenz, falls vorhanden, wird vom Programmierer definiert. Was ist die Aufgabe, die Sie erreichen möchten? –

+0

Ich habe keine Datei "values.xml". Alle meine Ressourcen sind in der Datei "strings.xml" im Ordner "res/values" definiert. Das funktioniert gut. Was ich zu bestimmen versuche, ist, wenn ich darauf zählen kann, dass die Schlüssel/Wert-Paare immer ausgerichtet sind (1/eins, 2/2, 3/3 usw.). Ich möchte keine Logik dafür aufbauen, wenn die Deserialisierung der "Item" -Knoten zufällig durchgeführt wird. – PhilaPhan80

Antwort

4

Ja, soweit ich Sie bewusst bin davon aus, dass die Reihenfolge der Elemente jedes Mal die gleiche sein wird, Sie sicher Sinn kann mit separat xml-deklarierten Arrays Schlüssel/Wert-Paare definieren. Sehen Sie sich die API-Demos an (z. B. die Datei arrays.xml), und Sie werden feststellen, dass Google die gleiche Methode zur Angabe statischer Schlüssel/Wert-Paare verwendet. Genauer gesagt können Sie dies aus entries_list_preference und entryvalues_list_preference ableiten. Eigentlich, wenn Sie darüber nachdenken: Es würde kaum Sinn machen, entries und entryValues Attribute zum Zeigen auf statische Ressourcen für z.B. a wenn ihre Bestellung nicht garantiert wäre.

Addendum: Mehrdimensionale Arrays in XML werden nicht unterstützt. Sie können jedoch Ihren eigenen XML-Parser schreiben, um diese Fälle zu bearbeiten, was eigentlich nicht so schwer ist, wie es klingen mag. Es würde jedoch wahrscheinlich mehr Zeit benötigen, als einfach zwei eindimensionale Arrays zu definieren.

+0

Danke! Genau das habe ich gesucht. – PhilaPhan80

Verwandte Themen