如何从android XML中的<string-array>资源访问<item>?

nul*_*ull 5 xml android

我有一个用于PreferenceActivity的xml文件(/res/xml/setting.xml):

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
        <PreferenceCategory android:title="Main Settings">
            <ListPreference
                android:title="Background Image"
                android:summary="Set the background image"
                android:key="key_background"
                android:entries="@array/background"
                android:entryValues="@array/background_values" 
                android:defaultValue="winter.png" /> 
        </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

然后我有另一个xml文件"/res/values/string.xml":

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="background">
        <item>Winter</item>
        <item>Desert</item>
    </string-array>

    <string-array name="background_values">
        <item>winter.png</item>
        <item>desert.png</item>
    </string-array>

</resources>
Run Code Online (Sandbox Code Playgroud)

请参阅setting.xml中的ListPreference,我想android:defaultValue设置为winter.png.但是我也不想在xml中设置硬编码/常量值,所以我尝试了各种值,如" @array/background_values/0"," @array/background_values[0]"等...但都失败了.

所以,问题是:

  1. 访问其他xml中的字符串数组资源项的正确语法是什么?
  2. 如何确定它android:defaultValue是否正常工作?
  3. 有没有关于@array语法的文档?我找不到任何东西.

jul*_*ian 0

使用数组中您想要的值的索引 android:defaultValue="0"

上面的代码之所以有效,只是因为我在字符串数组值中使用了数字,而不是因为索引。