Android源码--Settings之Preference布局的详解

最近在研究Android源码Settings应用的时候发现里面使用了大量了的Preference布局,那么这个perference布局有什么特点呢。
Preference翻译为偏好,但理解为首先项更为合适,他可以把值用sharedPreference保存。
<一> Preference布局中常用的标签:
仿Settings语言设置Preference布局
最近在研究Android源码Settings应用的时候发现里面使用了大量了的Preference布局,那么这个perference布局有什么特点呢。
Preference翻译为偏好,但理解为首先项更为合适,他可以把值用sharedPreference保存。
<一> Preference布局中常用的标签:
PreferenceScreen:布局中的根节点,有点类似于LinearLayout,如果PreferenceScreen中嵌套PreferenceScreen,点击嵌套的PreferenceScreen会跳到另一个Screen。
PreferenceCategory:让布局更有层次感,比如图片中的红色字体部分。
<二> 常见的有CheckBoxPreference、EditextPreference、ListPreference等等。
<三> Preference的属性
key:每个preference的唯一标识,类似于view空间的ID,通过这个可以找到这个Preference控件

mListPreference=(ListPreference)findPreference("list");

title:Preference控件的标题,比如“语言”
summary:Preference控件的子标题,比如“中国(简体)”
defaultValue 默认值。例如,CheckBoxPreference 默认值可选“true”,表示默认选中状态; EditTextPreference 默认值写“110”,弹出的edit框中默认值为“110”
enabled 表示该Preference控件是否可用状态
persistent 表示Preference所对应的值是否写入sharedPreference的文件中,true表示写入,false表示不写入
dependency 表示一个Preference(用A表示)的可用状态依赖另外一个Preference(用B表示)。B可用,则A可用;B不可用,则A不可用。写入的值为其他preference的key
<四、Preference监听事件>
这里写图片描述
Preference在activity中继承PreferenceActivity(API 11以后推荐PreferenceFragment ),PreferenceActivity中有一个总要的监听方法
onPreferenceTreeClick( )
两个重要的监听接口:
Preference.OnPreferenceChangeListener:onPreferenceChange( )
Preference.OnPreferenceClickListener: onPreferenceClick( )

那么这三个监听方法的执行顺序和区别又是什么呢?

当你点击Preference控件时首先会执行onPreferenceClick()方法,它的返回值是boolean类型的,如果返回值为:
true,该点击事件被消费掉,将不执行onPreferenceTreeClick( )方法
false,该点击事件没有被消费掉,将继续执行onPreferenceTreeClick( )方法

onPreferenceTreeClick( )的返回值也为Boolean类型,如果为:
true:事件已经被成功消费,不用返回上一层继续执行,比如不会执行Preference里面的Intent跳转。
false:事件没有被消费,需要返回上一层继续执行,比如执行intent跳转。

onPreferenceChange( ) ,当preference控件的value改变时会触发这个监听方法,返回值为true就保存新值到sharedpreference中,返回值为false则不保存新值。

<五、preference布局的添加已经控件的初始化>
这里写图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrsongs的心情杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值