android 首选项 CheckBoxPreference

ListPreference首选项显示了一个列表作为它的UI元素。类似地,CheckBoxPreference 首选项显示了一个复选框部件作为它的UI元素,更多关于ListPreference的介绍请参考这篇文章[url]http://byandby.iteye.com/blog/1044916[/url]

为了扩展航班搜索示例应用程序,假设希望让用户设置他希望在结果集中看到的列。此首选项显示可用的列,支持用户通过勾选响应的复选框来选择期望的列,如下图。

[img]http://dl.iteye.com/upload/attachment/481884/d879434f-8018-3f61-956b-c3f9012c5f5f.jpg[/img]

此首选项的XML 文件,此XML 文件存放路径为 /res/xml/chkbox.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 Preferences"
android:summary="Set Columns for Search Results">

<CheckBoxPreference android:key="show_airline_column_pref"
android:title="Airline" android:summary="Show Airline column" />

<CheckBoxPreference android:key="show_departure_column_pref"
android:title="Departure" android:summary="Show Departure column" />

<CheckBoxPreference android:key="show_arrival_column_pref"
android:title="Arrival" android:summary="Show Arrival column" />

<CheckBoxPreference android:key="show_total_travel_time_column_pref"
android:title="Total Travel Time" android:summary="Show Total Travel Time column" />

<CheckBoxPreference android:key="show_price_column_pref"
android:title="Price" android:summary="Show Price column" />
</PreferenceScreen>



我们的PreferenceActivity 类CheckBoxPreferenceActivity
package xiaohang.zhimeng;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class CheckBoxPreferenceActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.chkbox);
}
}


上边给出了首选项的XML文件 chkbox.xml,以及一个简单的活动类,该类使用addPreferencesFromResource() 来加载首选项XML文件。可以看到,UI具有5个复选框,每个复选框都使用首选项XML 文件中的 CheckBoxPreference 节点表示。每个复选框还有一个key,在保存所选的首选项时,该键最终将用于持久化UI元素的状态。有了 CheckBoxPreference,在用户设置首选项的状态时,该状态将会保存。换句话说,当用户选择或取消选择首选项控件时,将保存该控件的状态,下面给出了首选项的 数据存储,我们可以读一下。

[img]http://dl.iteye.com/upload/attachment/481894/7a282f9e-ac88-346f-a652-be5a67218704.jpg[/img]

我们可以看到每个首选项都是通过key来保存的 key就对应 boolean 元素的name 属性。CheckBoxPreference 的数据类型为boolean, 它包含一个true值或false值:true值表示选中了首选项,false值表示未选中首选项。要读取一个复选框的首选项的值,可以访问共享对象的首选项,然后调用 getBoolean()方法,将首选项的 key 传递给它:

Boolean option = prefs.getBoolean(“show_price_column_pref”,false);


CheckBoxPreference 的另一个有用的特性是,可以根据是否选中了复选框来设置不同的摘要文本。它的两个特性是 summaryOn和 summaryOff,就比如我们可以这样玩。
<CheckBoxPreference android:key="show_price_column_pref"
android:summaryOff="11111111"
android:summaryOn="222222222"
android:title="Price" />


[img]http://dl.iteye.com/upload/attachment/481896/05c7c1c2-e7f2-3ffb-a689-a83b57c38c0f.jpg[/img]


[img]http://dl.iteye.com/upload/attachment/481898/9e452113-09bd-340e-96e6-acde27269654.jpg[/img]
选中状态和未选中状态显示不同的摘要

源码大家参考 [url]http://byandby.iteye.com/blog/1044916[/url] 这篇文章 下载源码,然后修改 就OK 了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值