没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
6页
首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。 Android提供了一种健壮并且灵活的框架来处理首选项。它提供了简单的API来隐藏首选项的读取和持久化,并且提供了一个优雅的首选项界面。 几种常见的首选项: (1)CheckBoxPreference:用来打开或关闭某个功能 (2)ListPreference:用来从多个选项中选择一个值; (3)EditTextPreference:用来配置一段文字信息; (4)Preference:用来执行相关的自定义操作(上图中的清除缓存、历史记录、表单、cookie都属于此项); (5)RingtonePref
资源详情
资源评论
资源推荐
Android中中Fragmen首选项使用自定义的首选项使用自定义的ListPreference的方的方
法法
首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。
Android提供了一种健壮并且灵活的框架来处理首选项。它提供了简单的API来隐藏首选项的读取和持久化,并且提供了一个
优雅的首选项界面。
几种常见的首选项:
(1)CheckBoxPreference:用来打开或关闭某个功能
(2)ListPreference:用来从多个选项中选择一个值;
(3)EditTextPreference:用来配置一段文字信息;
(4)Preference:用来执行相关的自定义操作(上图中的清除缓存、历史记录、表单、cookie都属于此项);
(5)RingtonePreference:专门用来为用户设置铃声。
当我们使用首选项框架时,用户每更改一项的值后,系统就会立即在/data/data/[PACKAGE_NAME]/shared_prefs下生成一个
[PACKAGE_NAME]_preferences.xml的文件,文件会记录最新的配置信息。
那么本文要讲的就是其中的ListPreference,以及通过PreferenceFragment来使用自定义的ListPreference。
1. 自定义属性自定义属性
添加文件res/values/attrs.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="IconListPreference">
<attr name="entryIcons" format="reference" />
</declare-styleable>
</resources>
说明:
(01) name=”IconListPreference”,与自定义的ListPreference类的名称相对应。后面会实现一个继承于ListPreference的
IconListPreference.java。
(02) name=”entryIcons”,这是属性的名称。
(03) format=”reference”,这描述属性的值是引用类型。因为,后面会根据资源id设置该属性,所以将属性格式设为
reference。如果是颜色,设为format=”color”;如果是布尔类型,format=”boolean”;如果是字符串,设为format=”string”。
2. 自定义自定义ListPreference
2.1 构造函数构造函数
public IconListPreference(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
// 获取自定义的属性(attrs.xml中)对应行的TypedArray
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.IconListPreference);
// 获取entryIcons属性对应的值
int iconResId = a.getResourceId(R.styleable.IconListPreference_entryIcons, -1);
if (iconResId != -1) {
setEntryIcons(iconResId);
}
// 获取Preferece对应的key
mKey = getKey();
// 获取SharedPreferences
mPref = PreferenceManager.getDefaultSharedPreferences(context);
// 获取SharedPreferences.Editor
mEditor = mPref.edit();
// 获取Entry
// 注意:如果配置文件中没有android:entries属性,则getEntries()为空;
mEntries = getEntries();
// 获取Entry对应的值
// 注意:如果配置文件中没有android:entryValues属性,则getEntries()为空
mEntryValues = getEntryValues();
// 获取该ListPreference保存的值
String value = mPref.getString(mKey, "");
mPosition = findIndexOfValue(value);
// 设置Summary
if (mPosition!=-1) {
setSummary(mEntries[mPosition]);
setIcon(mEntryIcons[mPosition]);
weixin_38614417
- 粉丝: 5
- 资源: 915
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0