我正在为我的应用创建首选项,并注意到一些示例将XML存储在res / xml中,而另一些示例将它们存储在res / xml中。 是否有理由或最佳实践将它们存储在一个存储空间中? 我的res / layout文件夹中已经有很多布局文件,那么将首选项布局文件放入res / xml是否有意义?

===============>>#1 票数:10 已采纳

首选xml应放置在res / xml文件夹中。 res / layout仅适用于布局xml。

===============>>#2 票数:4

是来自Google。

将res / xml /用于可以在运行时通过调用Resources.getXML()读取的任意XML文件。

===============>>#3 票数:2

首选项XML文件位置的最佳做法必须在此处说明:“您必须将XML文件保存在res / 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" />

仍然需要在attr.xml文件的values文件夹中定义someAttr。 在组件的样式内声明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);

  ask by Drake Amara translate from so

未解决问题?本站智能推荐: