3

在设置部分,有一个颜色列表首选项(如下面的代码所示),但我似乎找不到值不显示的原因。我检查了互联网,但我似乎无法理解 android:entries 和 android:entryValues 之间的区别。这可能是我的代码中的问题吗?任何帮助表示赞赏。提前致谢。

下面的数组

<string-array name="preferencebackground">
<item name="Red"/>
<item name="Green"/>
<item name="Blue"/>
<item name="Orange"/>
</string-array>
<string name="preferencebackground">Background Colour Preferences</string>
 <string-array name="preferencebackgroundvalues">
<item name="Red"/>
<item name="Green"/>
<item name="Blue"/>
<item name="Orange"/>
</string-array>

Pref_general.xml

    <ListPreference
    android:defaultValue="-1"
    android:entries="@array/preferencebackground"
    android:entryValues="@array/preferencebackgroundvalues"
    android:key="example_list1"
    android:negativeButtonText="@null"
    android:positiveButtonText="@null"
    android:title="@string/preferencebackground" />
4

2 回答 2

4

数组的定义应如下所示:

<string-array name="entries">
    <item>Red</item>
    <item>Blue</item>
    <item>Green</item>
    <item>Black</item>
</string-array>

<string-array name="values">
    <item>#FF0000</item>
    <item>#0000FF</item>
    <item>#00FF00</item>
    <item>#000000</item>
</string-array>

此外,我会从首选项中删除这些行...

android:negativeButtonText="@null"
android:positiveButtonText="@null"

...而且,更重要的是:设置作为列表一部分的默认值。

<ListPreference
    android:defaultValue="Red"
    android:entries="@array/preferencebackground"
    android:entryValues="@array/preferencebackgroundvalues"
    android:key="example_list1"
    android:title="@string/preferencebackground" />

假设您将数组存储在一个名为的文件arrays.xml中,并且首选项文件的格式也很好,那么它应该可以正常工作。

ps 当然最好使用字符串引用而不是硬编码Red和颜色引用而不是#FF0000etc。

于 2013-04-02T19:00:13.980 回答
-1

我遇到了同样的问题,我的错误是在arrays.xml上,

这是我以前的代码..

 <string-array name="list">
        <item name="option 1">Option 1 </item>
        <item name="option 2">Option 2 </item>
        <item name="option 3">Option 3 </item>
        <item name="option 4">Option 4 </item>
    </string-array>

    <string-array name="lvalues">
        <item name="1">1</item>
        <item name="2">2</item>
        <item name="3">3</item>
        <item name="4">4</item>
    </string-array>

这是我修改后的代码。

 <string-array name="optionlist">
        <item name="option 1">Option 1 </item>
        <item name="option 2">Option 2 </item>
        <item name="option 3">Option 3 </item>
        <item name="option 4">Option 4 </item>
    </string-array>

    <string-array name="optionlistValues">
        <item name="1">1</item>
        <item name="2">2</item>
        <item name="3">3</item>
        <item name="4">4</item>
    </string-array>

希望这会有所帮助。

于 2014-08-20T10:43:06.360 回答