在这篇文章中主要是学习下preference中各个节点的属性。PrefeneceActivity都提供了哪几种元素可供使用。点击Add按钮,在打开的新窗口中可以看到以下几项:
1. CheckBoxPreference:CheckBox选择项,对应的值的ture或flase。如图:
2. EditTextPreference:输入编辑框,值为String类型,会弹出对话框供输入。如图:
3. ListPreference: 列表选择,弹出对话框供选择。如图:
4. Preference:只进行文本显示,需要与其他进行组合使用。
5. PreferenceCategory:用于分组。效果如下:
6. PreferenceScreen:PreferenceActivity的根元素。
7. RingtonePreference:系统玲声选择。
下面我们来分析各个节点的属性:
PreferenceCategory属性分析:
title:显示的标题
key:唯一标识(至少在同一程序中是唯一),SharedPreferences也将通过此Key值进行数据保存,也可以通过key值获取保存的信息 (以下相同)
CheckBoxPreference属性分析:
Key:唯一标识
title:显示标题(大字体显示)
summary:副标题(小字体显示)
defaultValue:默认值(当然,此处只能是true或false了)
Preference属性分析: Key:唯一标识.
title:显示标题(大字体显示)
summary:副标题(小字体显示)
dependency:附属(嘛意思),即标识此元素附属于某一个元素(通常为CheckBoxPreference),dependency值为所附属元素的key。上面代码中的Preference元素附属于key等于“apply_bluetooth”的CheckPreference元素,当CheckPreference值为true时,Preference则为可用,否则为不可用。
EditTextPreperence属性分析
Key:唯一标识.
title:显示标题(大字体显示)
ListPreference属性分析:
Key:唯一标识.
title:显示标题(大字体显示)
dialogTitle:弹出对话框的标题
entries:列表中显示的值。为一个数组,通读通过资源文件进行设置。
entryValues:列表中实际保存的值,也entries对应。为一个数组,通读通过资源文件进行设置。以下代码显示的是arrays.xml文件中内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
resources
>
<
string-array
name
=
"department"
>
<
item
>综合部</
item
>
<
item
>外贸部</
item
>
<
item
>行政部</
item
>
</
string-array
>
<
string-array
name
=
"department_value"
>
<
item
>001</
item
>
<
item
>002</
item
>
<
item
>003</
item
>
</
string-array
>
</
resources
>
|
RingtonePreference 属性分析
铃声(暂时没有用到过),暂时略过。
如何响应PreferenceActivity的操作
只要重写PreferenceActivity的 onPreferenceTreeClick的方法就可以了,通过参数preference来判断是对那一个元素进行的,并根据需要进行操作。代码如下:
1
2
3
4
5
6
|
@Override
public
boolean
onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// TODO Auto-generated method stub
return
super
.onPreferenceTreeClick(preferenceScreen, preference);
}
|
这样到此为止,我们在APP中就实现了设置功能。