Android字符串数组资源:大屏幕的重复xml声明?

Android字符串数组资源:大屏幕的重复xml声明?,android,resources,duplicates,android-preferences,arrays,Android,Resources,Duplicates,Android Preferences,Arrays,我在/res/values/arrays.xml中有这个字符串数组资源,用于ListPreference: <string-array name="pref_font_size_entries"> <item>Small</item> <item>Normal</item> <item>Large</item> <item>Extra Large</item>

我在/res/values/arrays.xml中有这个字符串数组资源,用于ListPreference:

<string-array name="pref_font_size_entries">
    <item>Small</item>
    <item>Normal</item>
    <item>Large</item>
    <item>Extra Large</item>
</string-array>

小的
正常的
大的
特大型
如果我想在更大的屏幕上添加一个额外的列表项(请参阅最后一个
大的
),我是否必须在/res/values-sw600dp/arrays.xml中复制整个声明


小的
正常的
大的
特大型
巨大的

是的,您必须复制
pref\u font\u size\u条目的整个定义,因为它们不是累积的。Android选择最适合解析的XML文件。如果此处有其他定义或/res/values中的其他XML文件与/res/values-sw600dp相同,则无需重复这些定义。

无需,单个
/res/values/arrays.XML
就足够了

说明:


安卓足够聪明。它将为资源搜索适当的文件夹,如果找不到,它将自动移动到默认文件夹。所以,若这两种文件方式并没有区别,那个么默认文件夹中的单个文件就足够了

否定义要用于更大屏幕的项目。如果项目不在单独的xml中,android将选择默认的xml值。唯一的区别似乎是第二个arrays.xml中的
巨大的
。一种替代复制的方法是将其放在default arrays.xml中,但如果不合适,则在显示首选项时检查屏幕密度以禁用它
巨型
/values-sw600dp/arrays.xml
中的额外项目。事实上,android使用了适当的资源,但他的问题不同。他正在尝试为不同的屏幕声明字体大小条目。默认文件夹中的字体大小是否有影响?我不这么认为。好吧,假设arrays.xml文件有许多其他资源不变,您是否建议将pref_font_size_条目定义(以及任何其他相关的)移动到另一个arrays_preferences.xml文件中,并且只复制这个较小的xml文件,而不是整个array.xml?@jamlelian,这听起来很合理,而且会使差异更加明确。
<string-array name="pref_font_size_entries">
    <item>Small</item>
    <item>Normal</item>
    <item>Large</item>
    <item>Extra Large</item>
    <item>Huge</item>
</string-array>