问题描述
我有一个列表preference不显示的选择。结果
似乎是正确数量的插槽一盒。但选项不是在插槽中。结果
我试图改变的主题。结果
没有帮助。结果
我尝试添加和删除默认值属性。结果
这并没有帮助。结果
我尝试使用一套默认值的方法。
这并没有帮助。结果
我不希望这本书,一天花了就可以了。结果
任何想法?
从Options.class
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
加preferencesFromResource(R.xml.options);
//$p$pferenceManager.setDefaultValues(getApplicationContext(),R.xml.options,
//假);
}
从preference xml文件:
<名单preference
机器人:标题=@字符串/ opt_cuisine_title
机器人:总结=@字符串/ opt_cuisine_summary
机器人:设置defaultValue =中国
机器人:项=@阵列/ cuisine_ preferences_array
机器人:entryValues =@阵列/ cuisine_ preferences
安卓:为了=3
机器人:键=清单
/>
从资源/ strings.xml档案:
<字符串数组名=cuisine_ preferences>
<项目名称=以色列>以色列和LT; /项目>
<项目名称=泰>泰国< /项目>
<项目>意大利语< /项目>
<项目>法语< /项目>
<项目>其他< /项目>
< /字符串数组>
<整型数组名=cuisine_ preferences_array>
<项目> 1 LT; /项目>
<项目> 2'; /项目>
<项目>第3版; /项目>
<项目> 4℃; /项目>
<项目> 5℃/项目>
< /整数数组>
从清单:
<活动
机器人:选项NAME =
机器人:标签=@字符串/ options_header
>
< /活性GT;
首先,目录preference
不能读<整型数组&GT ;
。无论机器人:项
和的android:entryValues
必须<字符串数组>
。可以解析到的字符串中的code整数,虽然。
二,机器人:项
是显示在屏幕上,和的android:entryValues
是值在内部使用。
因此,
<名单preference
机器人:标题=@字符串/ opt_cuisine_title
机器人:总结=@字符串/ opt_cuisine_summary
机器人:设置defaultValue =1
机器人:项=@阵列/ cuisine_ preferences
机器人:entryValues =@阵列/ cuisine_ preferences_array
安卓:为了=3
机器人:键=清单
/>
<字符串数组名=cuisine_ preferences>
<项目>以色列和LT; /项目>
<项目>泰国< /项目>
<项目>意大利语< /项目>
<项目>法语< /项目>
<项目>其他< /项目>
< /字符串数组>
<字符串数组名=cuisine_ preferences_array>
<项目> 1 LT; /项目>
<项目> 2'; /项目>
<项目>第3版; /项目>
<项目> 4℃; /项目>
<项目> 5℃/项目>
< /字符串数组>
编辑:的android:设置defaultValue
应的一个机器人:entryValues
。 <字符串数组方式>
项目不需要名称
属性
I have a listpreference that does not display the choices.
A box with the correct number of slots appears. but the options are not in the slots.
I tried changing the theme.
Did not help.
I tried adding and removing the default value attribute.
That did not help.
I tried using the set Default Value method.That did not help.
I did this by the book and spent over a day on it.
Any ideas?
from the Options.class
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.options);
//PreferenceManager.setDefaultValues(getApplicationContext(),R.xml.options,
//false);
}
from the Preference xml file:
<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"
/>
from the resource/strings.xml file:
<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>
from the manifest:
<activity
android:name=".Options"
android:label="@string/options_header"
>
</activity>
First, ListPreference
cannot read <integer-array>
. Both android:entries
and android:entryValues
must be <string-array>
. You can parse the strings into integers in the code, though.
Second, android:entries
is what is shown on the screen, and android:entryValues
is the value that is used internally.
Therefore,
<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>
EDIT: android:defaultValue
should be one of android:entryValues
. <string-array>
items do not need name
attribute.
这篇关于列表preferences不显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!