【转】 Pro Android学习笔记(五八):Preferences(2):CheckBoxPreference
在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学习笔记(八二):了解Package(1):包和进程
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...
- 【转】 Pro Android学习笔记(八五):了解Package(4):lib项目
目录(?)[-] 什么是lib项目 小例子 Lib的实现 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...
- 【转】 Pro Android学习笔记(八十):服务(5):访问远程服务
目录(?)[-] Client的AIDL文件 Client的代码 建立连接 请求服务 断开连接 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://bl ...
- 【转】 Pro Android学习笔记(八八):了解Handler(2):什么是Handler
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们有一篇很好的博文<Andro ...
- 【转】 Pro Android学习笔记(八九):了解Handler(3):延迟执行小例子
目录(?)[-] 小例子 Handler的处理 Activity的代码片段 后台线程和UI的互动 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://b ...
- 【转】 Pro Android学习笔记(八六):了解Package(5):使用lib
目录(?)[-] 在项目中使用lib 源代码 了解一些机制 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowin ...
- 【转】 Pro Android学习笔记(八四):了解Package(3):包间数据共享
目录(?)[-] 共享User ID的设置 共享资源例子 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...
- 【转】 Pro Android学习笔记(八三):了解Package(2):包签名过程
目录(?)[-] 类比例子 数字签名 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在W ...
- 【转】 Pro Android学习笔记(八七):了解Handler(1):组件和线程
目录(?)[-] 主线程消息队列和线程池 查看线程信息 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingf ...
- 【转】Pro Android学习笔记(八):了解Content Provider(下中)
在之前提供了小例子BookProvider,我们回过头看看如何将通过该Content Provider进行数据的读取. (1)增加 private void addBook(String name , ...
随机推荐
- 【python】-- 基于Django的杂货铺
Django的杂货铺 此篇文章保存基于Django而实现的各种小功能示例 1.验证码 + Session 这个是在前端图片验证码的生成,再配合Session进行后端校验的功能示例 import ran ...
- activiti踩坑
最近在学习activiti,偶然间遇到一个错误:加载引擎的时候报错,显示空指针错误,跟代码发现初始化配置文件返回为null.几经排查,可能是因为我发布流程后又清空了数据库数据导致的.然后我把表全部删除 ...
- ABAP服务器文件操作
转自http://blog.itpub.net/547380/viewspace-876667/ 在程序设计开发过程中,很多要对文件进行操作,这又分为对本地文件操作和服务器文件操作.对本地文件操作使用 ...
- 中国移动OneNet平台上传GPS数据JSON格式
最终目的输出 POST /devices/3225187/datapoints HTTP/1.1 api-key: R9xO5NZm6oVI4YBHvCPKEqtwYtMA Host: api.hec ...
- Python 列表解析list comprehension和生成表达式generator expression
如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析(List comprehensions)和生成表达式(generator expression) (1)list ...
- Effective java -- 8 异常
第五十七条:只针对异常的情况才使用异常应该都有这个意识吧,就像什么抓索引越界什么的,没有必要. 第五十八条:对可恢复情况使用受检查异常,对编程错误使用运行时异常三种可抛的异常:受检的异常(checke ...
- 高性能js之数据访问性能
js中si中基本数据访问: 直接量, 变量, 数组项, 对象成员 性能问题: 首先要理解作用域链的基本概念,例如,当一个函数被创建时,就会产生一个激活对象(AO对象),AO对象中存储了该函数中所有的属 ...
- 第二章 python中重要的数据结构(下)
二.元组(tuple):不可变序列 跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号. #创建元组 >>> 1,2,3 (1, ...
- 跨平台(I版到K版)迁移实践总结
所谓跨平台迁移,对于了解openstack冷迁移过程的同学来说,其实就是手动去执行冷迁移的代码行为,当然像我这种抵制体力劳动的人,肯定会想写脚本去跑,即使不会也要边学边用. 迁移并非想象 ...
- parseInt、parseFloat、Number、Boolean、valueOf总结
parseInt(string, radix) 功能: 将字符串转换为十进制的数字 radix: string的进制,没有时根据string进行判断: 1~9开头 十进制 0x开头 16进制 0开头 ...