Pro Android学习笔记(五八):Preferences(2):CheckBoxPreference
来源:互联网 发布:办公软件的快捷键 编辑:程序博客网 时间:2024/06/10 00:46
在ListPreference的例子中显示的是单选,如果是多选,可采用CheckBoxPreferece。我们继续航班信息的例子,用户选择航班信息中显示哪些信息(航班,出发时间、到达时间、航程时间、价格)。
CheckBox Preference
xml文件
在res/xml/中增加checkbox.xml文件,如下:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="flight_columns_pref"
android:title="Flight Search Prefereces"
android:summary="Set Columns for Search Results">
<CheckBoxPreference android:key="show_airline_column_pref"
android:title="AirLine"
android:summaryOn="Show AirLine Column"
android:summaryOff="Not Show AirLine Column" />
<CheckBoxPreference android:key="show_departure_column_pref"
android:title="Departure"
android:summary="Show Departure column" />
<CheckBoxPreference … />
<CheckBoxPreference … />
<CheckBoxPreference … />
</PreferenceScreen>
android:summaryOn和android:summaryOff表示在选择和不选择分别显示的summary。
设备的存贮文件
在设备上存贮preference的内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="show_departure_column_pref" value="true" />
<boolean name="show_airline_column_pref" value="false" />
……
</map>
从存贮的xml文件中看到,存贮值为boolean,因此在读取preference时采用getBoolean(),如下:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean option = prefs.getBoolean("show_airline_column_pref", false);
showInfo("Show Airline column : " + option);
showInfo("Show Departure column : " + prefs.getBoolean("show_departure_column_pref", false));
复合preference
我们的第一个例子是ListPreference,第二个例子是CheckPreference,我们希望这些配置都合并到同一个xml文件中,如下:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http……"
android:title="Complex Preferences">
<ListPreference android:key="selected_flight_sort_option"
android:title="Flight Options"
android:summary="Set Search Options"
android:entries="@array/flight_sort_options"
android:entryValues="@array/flight_sort_options_values"
android:dialogTitle="Choose Flight Options"
android:defaultValue="@string/default_flight_option"/>
<PreferenceScreen android:key="flight_columns_pref"
android:title="Flight Search Prefereces"
android:summary="Set Columns for Search Results">
<CheckBoxPreference android:key="show_airline_column_pref"
android:title="AirLine"
android:summaryOn="Show AirLine Column"
android:summaryOff="Not Show AirLine Column" />
<CheckBoxPreference
android:key="show_departure_column_pref"
android:title="Departure"
android:summary="Show Departure column" />
<CheckBoxPreference …/>
… 其他 CheckBox Preference内容…
</PreferenceScreen>
</PreferenceScreen>
在同一app下,res/xml中可以设置多个preference文件,它们可以含有同一个key的preference,实际都指向存贮文件中的同一个值,即代表相同的preference,只是在不同的Preferences UI中呈现。
本博文涉及的例子代码,可以在Pro Android学习:Preference(首选项)小例子中下载。
相关链接: 我的Android开发相关文章
- Pro Android学习笔记(五八):Preferences(2):CheckBoxPreference
- Pro Android学习笔记(五九):Preferences(3):EditText和Ringtone Preference
- Pro Android学习笔记(五七):Preferences(1):ListPreference
- Pro Android学习笔记(八五):了解Package(4):lib项目
- Pro Android学习笔记(六十):Preferences(4):MultiSelect List Preference
- Pro Android学习笔记(六一):Preferences(5):组织Preference
- Pro Android学习笔记(六二):Preferences(6):header
- Pro Android学习笔记(六三):Preferences(7):代码控制首选项
- Pro Android学习笔记(八八):了解Handler(2):什么是Handler
- Pro Android学习笔记(五六):配置变化
- Pro Android学习笔记(六八):HTTP服务(2):HTTP POST
- Pro Android学习笔记(八三):了解Package(2):包签名过程
- Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限
- Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限
- Pro Android学习笔记(八):了解Content Provider(下中)
- Pro Android学习笔记(四八):ActionBar(1):Home图标区
- Pro Android学习笔记(八二):了解Package(1):包和进程
- Pro Android学习笔记(八四):了解Package(3):包间数据共享
- 第一篇博客
- cocos2d-x在Android平台上嵌入WebView 转自http://chinaxiangf.blog.163.com/blog/static/79714331201331811113019
- 解决红米(MTK)手机无法连接电脑进行开发调试的问题
- centos6.4 kernel bug
- FAQ手册
- Pro Android学习笔记(五八):Preferences(2):CheckBoxPreference
- 1*3*5*7*...*n
- 寻找第K小的数(O(n))
- 列表下拉/上拉刷新: (一)EGORefreshTableHeaderView使用、定义EGORefreshTableFooterView
- iOS改变UINavigationBar导航条标题颜色和字体
- 二分查找算法
- CSS背景图片随层的大小整体放大缩小,兼容IE、FF、谷歌
- 响应VC++ 标题栏右边的关闭按钮“红叉”
- cocos2d-x 字体描边CCRenderTexture glBlendFunc