目录(?)[-]

  1. CheckBox Preference
    1. xml文件
    2. 设备的存贮文件
  2. 复合preference

在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的更多相关文章

  1. 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...

  2. 【转】 Pro Android学习笔记(八五):了解Package(4):lib项目

    目录(?)[-] 什么是lib项目 小例子 Lib的实现 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...

  3. 【转】 Pro Android学习笔记(八十):服务(5):访问远程服务

    目录(?)[-] Client的AIDL文件 Client的代码 建立连接 请求服务 断开连接 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://bl ...

  4. 【转】 Pro Android学习笔记(八八):了解Handler(2):什么是Handler

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们有一篇很好的博文<Andro ...

  5. 【转】 Pro Android学习笔记(八九):了解Handler(3):延迟执行小例子

    目录(?)[-] 小例子 Handler的处理 Activity的代码片段 后台线程和UI的互动 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://b ...

  6. 【转】 Pro Android学习笔记(八六):了解Package(5):使用lib

    目录(?)[-] 在项目中使用lib 源代码 了解一些机制 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowin ...

  7. 【转】 Pro Android学习笔记(八四):了解Package(3):包间数据共享

    目录(?)[-] 共享User ID的设置 共享资源例子 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...

  8. 【转】 Pro Android学习笔记(八三):了解Package(2):包签名过程

    目录(?)[-] 类比例子 数字签名 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在W ...

  9. 【转】 Pro Android学习笔记(八七):了解Handler(1):组件和线程

    目录(?)[-] 主线程消息队列和线程池 查看线程信息 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingf ...

  10. 【转】Pro Android学习笔记(八):了解Content Provider(下中)

    在之前提供了小例子BookProvider,我们回过头看看如何将通过该Content Provider进行数据的读取. (1)增加 private void addBook(String name , ...

随机推荐

  1. Orthogonal Least Squares Learning Algorithm for Radial Basis Function Networks

    Orthogonal Least Squares Learning Algorithm for Radial Basis Function Networks S. Chen, C. F. N. Cow ...

  2. 【译】快速高效学习Java编程在线资源Top 20

    想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...

  3. Linux mariadb(Mysql)的主从复制架构

    mysql的主从复制架构,需要准备两台机器,并且可以通信,安装好2个mysql,保持版本一致性 mysql -v 查看数据库版本 1.准备主库的配置文件  /etc/my.cnf 写入开启主库的参数[ ...

  4. 我的Android进阶之旅------>Android疯狂连连看游戏的实现之加载界面图片和实现游戏Activity(四)

    正如在<我的Android进阶之旅------>Android疯狂连连看游戏的实现之状态数据模型(三)>一文中看到的,在AbstractBoard的代码中,当程序需要创建N个Piec ...

  5. Google的Guava之IO升华

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luo201227/article/details/36413279 程序员在开发过程中,使用文件的几 ...

  6. GIT笔记:将项目发布到GITHUB

    GIT笔记:将项目发布到GITHUB 本机配置 1.在项目目录初始化GIT $ git init 2.用命令git add告诉Git,把文件添加到仓库 $ git add . // 这里是所有文件,用 ...

  7. 什么是DDOS攻击?怎么防御?

    一.什么是DDOS? DDOS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Servic ...

  8. Android OTA在线升级二(升级包编译原理分析) 【转】

    本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø  makeMtk [project[flav ...

  9. UVA 1493 Draw a Mess(并查集+set)

    这题我一直觉得使用了set这个大杀器就可以很快的过了,但是网上居然有更好的解法,orz... 题意:给你一个最大200行50000列的墙,初始化上面没有颜色,接着在上面可能涂四种类型的形状(填充):  ...

  10. IO流 相关基础积累

    一个整型32位字节. 写入到流.? 为什么要按十六进制输出到控制台?