在Android中何时使用res/xml与res/layout文件夹

在Android中何时使用res/xml与res/layout文件夹,android,android-ui,Android,Android Ui,我正在为我的应用程序创建首选项,并注意到一些示例将XML存储在res/layout中,而另一些示例将它们存储在res/XML中。是否有理由或最佳实践将它们存储在一个与另一个中?我的res/layout文件夹中已经有很多布局文件,所以将首选布局文件放在res/xml中有意义吗?首选布局文件应该放在res/xml文件夹中。res/layout仅适用于布局XML。首选项XML文件位置的最佳实践必须如所述:“您必须将XML文件保存在res/XML/目录中。尽管您可以随意命名该文件,但它的传统名称为pre

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

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

首选项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" />
来自谷歌


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

Preferences=res/xml;Other layouts=res/layout但首选项的xml不也被视为布局吗?它的布局用于首选项UI活动。当您仅使用自定义布局创建自定义首选项时,您的首选项将成为一个布局,并且可以放置在res/layoutThanks中以获取此说明。
<?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);