[英]When to use res/xml vs.res/layout folders in Android
我正在为我的应用创建首选项,并注意到一些示例将XML存储在res / xml中,而另一些示例将它们存储在res / xml中。 是否有理由或最佳实践将它们存储在一个存储空间中? 我的res / layout文件夹中已经有很多布局文件,那么将首选项布局文件放入res / xml是否有意义?
首选xml应放置在res / xml文件夹中。 res / layout仅适用于布局xml。
这是来自Google。
将res / xml /用于可以在运行时通过调用Resources.getXML()读取的任意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" />
仍然需要在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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.