2010-03-07 8 views
9

Während ich realisiere, dass Ressourcen selbst in XML-Dateien definiert sind, sollte ich, wenn ich eine XML-Datei meines eigenen Typs verwende, diese in "res/xml" speichern?Was ist der beste Weg, XML in Android zu speichern und darauf zuzugreifen?

Gibt es eine bessere Möglichkeit, dies zu tun, z. B. das Verwenden von Assets und das anschließende Laden dieser Assets als Binärdateien, um von einer anderen XML-Bibliothek analysiert zu werden?

Antwort

9

Ich würde mit dem Hinzufügen der XML-Ressource im Ordner res mit dem spezifischen Ressourcentyp gehen. Es ist eine Konvention, die ich angepasst habe, alle meine Dateien im selben Verzeichnis für die Organisation.

Wenn Sie Ihre XML-Datei hinzufügen, innerhalb von res/xml kann es jederzeit während der Laufzeit über Resources.getXML()

+0

Wissen Sie, welche API Ich werde am Ende mit, wenn XML durch Laden von Ressourcen? –

+0

Ich bin irgendwie verwirrt, was Sie mit welcher API meinen, können Sie ein bisschen mehr klären? –

+0

Welcher Parsertyp wird verwendet? Gibt es eine Android-API-Referenz? Einfacher gesagt, welche Art von Objekt liefert Resources.getXML()? –

2

zugegriffen werden, wenn Sie eine einfache Codierung über Geschwindigkeit schnell Blitz bevorzugen, dann würde ich stattdessen die Simple XML library verwenden. Es ist einfach einfacher zu programmieren. Ich habe einen Blogpost verfasst, den Sie ansehen können, der erklärt, how to include it in a project von Ihnen.

0

Zuerst, wie man richtig den Zugriff auf Dateien in Android zu wissen:

Sie können Ihre ursprünglichen Dateien und Verzeichnisse zugreifen müssen. Wenn Sie das tun, dann wird das Speichern Ihrer Dateien in res/ nicht für Sie arbeiten, weil die only way to read a resource from res/ is with the resource ID. Stattdessen können Sie Ihre Ressourcen im Verzeichnis "Assets /" speichern.

Dateien, die im Verzeichnis "assets /" gespeichert sind, erhalten keine Ressourcen-ID, sodass Sie sie nicht über die R-Klasse oder XML-Ressourcen referenzieren können. Stattdessen können Sie Dateien im Verzeichnis assets/wie ein normales Dateisystem abfragen und Rohdaten mit AssetManager lesen. Wenn Sie jedoch nur Rohdaten (z. B. eine Video- oder Audiodatei) lesen können, speichern Sie die Datei im Verzeichnis res/raw/und lesen Sie einen Byte-Stream mit openRawResource().

Zugriff auf XML-Dateien

http://developer.android.com/guide/topics/resources/accessing-resources.html#ResourcesFromXml

res/xml/ 

Arbitrary XML files that can be read at runtime by calling Resources.getXML() 

Source

Resources res = activity.getResources(); 
XmlResourceParser xrp = res.getXml(R.xml.the_file_name_aka_resource_ID); 
Verwandte Themen