ListPreference是Android系统提供的一种特定的Preference,它可以让开发者更灵活地设置和获取用户的选择。
1、 listpreference的功能:
ListPreference 可以以更加直观的样式展示一些多选项,同时再经过一次用户确认后,即可获取到用户选择的值。 ListPreference 通常用于一系列有联系的值列表中,以此优化用户的操作,如短信提醒声小音量(Off,Low,Medium或High); 无线网络类型选择(Wireless-B,Wireless-G或Wireless-N)等。
2、listpreference的使用:
(1)在Android的res/xml文件夹内添加preferences.xml的文件,假如不存在的话,新建一个即可。在其中添加一个ListPreference控件:
< ListPreference
android: key=\"wireless\"
android:title=\"Wireless Type Selection\"
android:summary=\"Choose Your Subscription\"
android:Entries=\"@array/wireless_type\"
android:EntryValues=\"@array/wireless_values\" />
(2)在res/values文件夹内创建一些字符串资源文件,数据由ListPreference来读取:
< string-array name=\"wireless_type\" >
< item >Wireless-B
Wireless-G
< item >Wireless-N
< string-array name=\"wireless_values\" >
< item >0
1
< item >2
(3)初始化Preference:
//Find the Preference
ListPreference wireless = (ListPreference)findPreference(\"Wireless\");
//Set the current ListPreference data base on user selection
//If the user has not select anything, set it to the first
String defaultValue = wireless.getEntryValues()[0].toString()
wireless.setValue(defaultValue);
// Set the listener
wireless.setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
// Update the wireless name base on user selection
@Override
public boolean onPreferenceChange(Preference Preference, Object newValue){
wireless.setValue(newValue.toString);
return true;
}
});
3、listpreference的优点:
- 具有良好的用户友好性:在界面展示时,它提供覆盖性最强的样式;
- 提高了软件可维护性:代码更符合MVC的模式,实现更紧凑,便于维护维修。
4、listpreference的缺点:
- ListPreference控件用于展示一些相关的信息选项,但是每次都需要重新输入数据,虽然如此,但这样容易造成数据记忆等问题;
- ListPreference控件仅能存储字符串类型的值,如果想要存储复杂类型,则无法使用ListPreference;
- 因为ListPreference是实现用户与软件交互的重要控件,在开发和测试阶段,要求对其功能进行较高的关注,才能保证软件在使用过程中的正确性。
listpreference:
1、listpreference是android应用程序开发中一种选项设置,它通常用于让用户从一个列表中选择性选择一个或多个选项,例如不同的页面显示模式(缩放比例、清晰度等)。
2、它可以作为应用程序中一个独立的设置项或作为其他设置项的子菜单使用。它可以显示一个包含一组选项的列表,允许用户从中选择一个。用户输入的值会存储在Preference中。
3、它包含三部分,分别是可选项说明(Entries),可选项值(EntryValues)和默认值(DefaultValue)。当用户选择或更改一个选项时,系统会把选择的项对应的值存储到Preference中。如果用户不变更现有选择,系统会使用默认值。
4、listpreference控件可以让用户选择多个选项,哪些选项被选中,哪些没有被选中,都可以被存储在Preference中。
5、listpreference控件可以显示多列的列表项,每列的内容都是可以由用户指定的。
6、listpreference控件支持添加图像、文本或自定义widget作为用户界面,例如添加代表不同模式的图片。
7、当用户点击一个选项时,其对应的值会被立即应用,并且可以立即生效。
8、listpreference控件可以定制列表项的背景,是否可勾选,是否可编辑,选择项之间是否是组关联,可以给用户更清晰的选择。
9、当用户选择一个选项时,会触发一个事件,例如显示一个提示框,提示用户,该选项会带来的变化。这样可以让用户更清楚的知道用户选择的结果。