2013-04-16 4 views
6

verwenden Ich erstelle Einstellungen für meine App und bemerkte, einige Beispiele speichern die XML in res/Layout und andere speichern sie in res/xml. Gibt es einen Grund oder eine Best Practice, um sie in einem gegen den anderen zu speichern? Ich habe bereits eine Menge Layoutdateien in meinem res/layout Ordner, macht es also Sinn die Layoutdateien in res/xml zu speichern?Wann res/xml vs.res/Layout-Ordner in Android

+2

Einstellungen = res/xml; Andere Layouts = res/Layout – gauravsapiens

Antwort

6

Die Präferenzen xmls sollten im Ordner res/xml abgelegt werden. Res/Layout ist nur für Layout Xmls.

+0

Aber ist nicht das XML für Einstellungen auch Layout berücksichtigt? Sein Layout für die Benutzeroberfläche der Einstellungen. –

+1

Wenn Sie benutzerdefinierte Einstellung mit benutzerdefiniertem Layout nur dann erstellen, wird dies ein Layout sein und kann in res/Layout platziert werden – stinepike

2

Best Practices für Preference XML-Datei Speicherort muss wie angegeben here lauten: "Sie müssen die XML-Datei im Verzeichnis res/xml/speichern. Obwohl Sie die Datei beliebig benennen können, heißt sie traditionell preferences.xml".

Obwohl ich die Überprüfung nicht finden konnte, ist der benutzerdefinierte Namespace für Ihre Anwendung der in der Datei AndroidManifest.xml angegebene Paketname.

xmlns:android="http://schemas.android.com/apk/res/android" package="com.mydomain.app"

können Sie diesen Namensraum für Attribute benutzerdefinierten XML verwenden, die benutzerdefinierte Steuerelemente und Einstellungen verweisen. Zum Beispiel gehören zu so etwas in der XML-Datei:

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myname="http://schemas.android.com/apk/res/com.mydomain.app"

In derselben XML-Datei enthalten einige benutzerdefinierte Komponente:

<com.mydomain.app.MyListPreference 
     android:key="pref_item1" 
     android:title="@string/item1" 
     android:summary="@string/pref_mysummary" 
     myname:someAttr="500" /> 

Die someAttr muss noch innerhalb der Werte Ordner definiert werden, in eine attr.xml-Datei. Die attr ist für die Komponente in einem Stil wie folgt deklariert:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="com.mydomain.app.MyListPreference"> 
     <attr name="someAttr" format="integer" /> 
    </declare-styleable> 
</resources> 

In der Klasse, die die benutzerdefinierte Komponente oder Bevorzugung Sie die Attribute erhalten definiert werden:

mDefaultValue = attrs.getAttributeIntValue(
"http://schemas.android.com/apk/res/com.mydomain.app", ATTR_DEFAULT_VALUE, 50); 
+0

Vielen Dank für diese Erklärung. – Deses

3

This von Google ist.

Verwenden Sie res/xml/für beliebige XML-Dateien, die unter Laufzeit durch den Aufruf von Resources.getXML() gelesen werden können.

Verwandte Themen