我有一个不显示选项的列表首选项
出现具有正确插槽数的框。但选项不在插槽中。
我试着改变主题
没有帮助。
我尝试添加和删除默认值属性
这没有用。
我尝试使用设置默认值方法。
这没有用。
我这本书做了这个,花了一天时间
有什么想法吗?
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.options);
//PreferenceManager.setDefaultValues(getApplicationContext(),R.xml.options,
//false);
}
来自Preference 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"
/>
来自resource / 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>
答案 0 :(得分: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
属性。