1

我有一个不显示选项的列表首选项。
出现一个具有正确数量的插槽的框。但选项不在插槽中。
我尝试改变主题。
没有帮助。
我尝试添加和删除默认值属性。
那没有帮助。
我尝试使用设置默认值方法。那没有帮助。
我是按书本做的,花了一天多的时间。
有任何想法吗?

来自 Options.class

    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.options);
            //PreferenceManager.setDefaultValues(getApplicationContext(),R.xml.options,
            //false); 
    }

从首选项 xml 文件:

        <ListPreference
        android:title="@string/opt_cuisine_title"
        android:summary="@string/opt_cuisine_summary"
        android:defaultValue="Chinese"
        android:entries="@array/cuisine_preferences_array"
        android:entryValues="@array/cuisine_preferences"
        android:order="3"
        android:key="list" 
        />

从资源/strings.xml 文件:

<string-array name="cuisine_preferences" >
    <item name="Israeli">Israeli</item>
    <item name="Thai">Thai</item>
    <item>Italian</item>
    <item>French</item>
    <item>Other</item>
</string-array>
<integer-array name="cuisine_preferences_array">
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
</integer-array>

从清单:

 <activity
     android:name=".Options"
     android:label="@string/options_header"
 >
 </activity>
4

1 回答 1

0

首先,ListPreference无法阅读<integer-array>。两者都android:entries必须android:entryValues<string-array>。不过,您可以在代码中将字符串解析为整数。

其次,android:entries是屏幕上显示的内容android:entryValues,是内部使用的值。

所以,

<ListPreference
android:title="@string/opt_cuisine_title"
android:summary="@string/opt_cuisine_summary"
android:defaultValue="1"
android:entries="@array/cuisine_preferences"
android:entryValues="@array/cuisine_preferences_array"
android:order="3"
android:key="list" 
/>


<string-array name="cuisine_preferences" >
    <item>Israeli</item>
    <item>Thai</item>
    <item>Italian</item>
    <item>French</item>
    <item>Other</item>
</string-array>
<string-array name="cuisine_preferences_array">
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
</string-array>

编辑:android:defaultValue应该是其中之一android:entryValues<string-array>物品不需要name属性。

于 2013-08-07T03:19:23.013 回答