学习了Preference的用法,这里记录下来供大家参考。
继承结构图
1、基本组成的使用
1.1组织方式(组合控件)
PreferenceScreen:最平白和基础的方式
PreferenceCategory:带有层次感的方式
请继续往下看 下面有展示
1.2各组件介绍(单一控件)
Preference一般用作设置中,常用的组件就下面几种
组件含义 | 组件名 |
---|---|
普通的Preference | Preference |
单选框 | CheckBoxPreference |
铃声选择 | RingtonePreference |
输入文本框 | EditTextPreference |
列表框 | ListPreference |
状态选择 | SwitchPreference |
1.3通用XML Attributes说明
Attributes | 含义 |
---|---|
android:key | 每个Preference控件独一无二的”ID”,唯一表示此Preference,类似于layout布局里的ID |
android:icon | Preference的图标 |
android:defaultValue | 默认值。 例如,CheckBoxPreference的默认值可为”true”,默认为选中状态 |
android:enabled | 表示该Preference是否可用状态 |
android:title | 每个Preference在PreferenceScreen布局上显示的标题——大标题 |
android:summary | 摘要,每个Preference在PreferenceScreen布局上显示的标题——小标题(可以没有) |
android:persistent | 表示Preference元素所对应的值是否写入sharedPreferen文件中,如果是true,则表示写 入;否则,则表示不写入该Preference元素的值 |
android:dependency | 表示一个Preference(用A表示)的可用状态依赖另外一个Preference(用B表示)。B可用, 则A可用;B不可用,则A不可用 |
android:disableDependentsState | 与android:dependency相反。B可用,则A不可用;B不可用,则A可用 |
1.4特别的Attributes说明
ListPreference
Attributes | 说明 |
---|---|
android:dialogTitle | 弹出控件对话框时显示的标题 |
android:entries | 类型为array,控件欲显示的文本 |
android:entryValues | 类型为array,与文本相对应的key-value键值对,value保存至sharedPreference文件 |
RingtonePreference
Attributes | 说明 |
---|---|
android:ringtoneType | 响铃的铃声类型,主要有:ringtone(音乐)、notification(通知)、alarm(闹铃) 、all(所有可用声 音类型) |
android:showDefault | 默认铃声,可以使用系统(布尔值—true,false)的或者自定义的铃声 |
android:showSilent | 指定铃声是否为静音。指定铃声包括系统默认铃声或者自定义的铃声 |
1.5Demo
在res文件夹下新建xml文件夹,在xml文件夹下新建preference.xml文件
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="sample">
<CheckBoxPreference
android:key="checkbox"
android:title="CheckBox Preference"
android:summary="Check it on,check it off"/>
<RingtonePreference
android:key="ringtone"
android:title="Ringtone Preference"
android:showDefault="true"
android:showSilent="true"
android:summary="Pick a tone,any tone"/>
</PreferenceCategory>
<PreferenceCategory
android:title="detail">
<PreferenceScreen
android:key="details_PreferenceScreen"
android:title="details"
android:summary="click me,you can see a checkbox">
<CheckBoxPreference
android:key="detail_checkbox"
android:title="Inner CheckBox Preference"
android:summary="Check it on,check it off"/>
</PreferenceScreen>
</PreferenceCategory>
//EditTextPreference和ListPreference都以弹框的形式
<PreferenceCategory android:title="other">
<EditTextPreference
android:key="edit"
android:title="Edit text"
android:summary="this is a edit text"
android:dialogTitle="edit something"//弹出时显示的标题
/>
<ListPreference
android:key="list"
android:title="list Preference"
android:summary="this is a list"
android:entries="@array/cities"// 为res/values下新建的array.xml文件,如下一步所示
android:entryValues