2013-04-16 22 views
6

我正在爲我的應用程序創建首選項,並注意到一些示例將XML存儲在res/layout中,並將其存儲在res/xml中。是否有理由或最佳做法將它們存儲在一個或另一箇中?我的res/layout文件夾中已經有一些佈局文件,因此將首選佈局文件放在res/xml中是否合理?何時在Android中使用res/xml vs.res/layout文件夾

+2

Preferences = res/xml; 其他佈局= res/layout – gauravsapiens

回答

6

Prefereces xmls應放置在res/xml文件夾中。 res /佈局僅適用於佈局xmls。對於偏好XML文件位置

+0

但是不是xml的偏好也被認爲是佈局?其針對偏好UI活動的佈局。 –

+1

當您使用自定義佈局創建自定義首選項時,那麼您的那將是一個佈局,可以放置在res/layout – stinepike

2

最佳實踐必須儘可能陳述here:「你必須保存在res/XML /目錄下的XML文件,儘管你能說出你想要的任何文件,它的傳統命名的preferences.xml」。

雖然我找不到驗證,但您的應用程序的自定義命名空間是AndroidManifest.xml文件中指定的軟件包名稱。

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

您可以使用此命名空間引用自定義控件和喜好自定義XML屬性。例如,包括在XML文件中是這樣的:

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

在這同一個XML文件中包括一些自定義組件:

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

的someAttr仍然需要在值文件夾內定義一個attr.xml文件。該attr爲聲明的風格爲內部組件如下:

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

在定義你使用的屬性自定義組件或偏好類:

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

感謝您的解釋。 – Deses

3

This是來自谷歌。

通過調用Resources.getXML()可以在運行時上使用res/xml /獲取任意XML文件。

相關問題