CheckPreference类似常见控件的CheckBox,一个item,右侧有一个CheckBox,用于通过SharePreferences存储操作的设置值,具体翻墙点我。
如下是CheckPreference的相关属性介绍:
| attr | description |
| — | — |
| android:disableDependentsState | 与android:dependency相反;B可用,则A不可用;B不可用,则A可用。 |
| android:summaryOff | 选项未选中时显示的摘要。 |
| android:summaryOn | 选项被选中时显示的摘要。 |
2-2-3 独立控件EditTextPreference
EditTextPreference类似常见控件的EditText,一个item,点击弹出一个EditText的对话框,用于通过SharePreferences存储操作的设置值,具体翻墙点我。
该控件无自有属性。具体不再介绍,相关方法查看官方API。
2-2-4 独立控件ListPreference
ListPreference类似常见控件的ListView,一个item,点击弹出一个ListView的Dialog,用于通过SharePreferences存储操作的设置值,具体翻墙点我。
如下是ListPreference的相关属性介绍:
| attr | description |
| — | — |
| android:entries | list要显示的item数组名字。 |
| android:entryValues | list要显示的item数组值。 |
2-2-5 独立控件MultiSelectListPreference
MultiSelectListPreference类似常见控件的ListView,一个item,点击弹出一个多选的ListView的Dialog,用于通过SharePreferences存储操作的设置值,具体翻墙点我。
MultiSelectListPreference的相关属性同上ListPreference。
2-2-6 独立控件SwitchPreference
SwitchPreference类似常见控件的Switch,一个item,右侧有一个Switch控件,用于通过SharePreferences存储操作的设置值,具体翻墙点我。
如下是SwitchPreference的相关属性介绍:
| attr | description |
| — | — |
| android:disableDependentsState | 与android:dependency相反;B可用,则A不可用;B不可用,则A可用。 |
| android:summaryOff | 选项未选中时显示的摘要。 |
| android:summaryOn | 选项被选中时显示的摘要。 |
| android:switchTextOff | 关闭状态的文字提示。 |
| android:switchTextOn | 打开状态的文字提示。 |
2-2-7 独立控件RingtonePreference
RingtonePreference就是一个铃声选择item,点击弹出铃声选择list的dialog,用于通过SharePreferences存储操作的设置值,具体翻墙点我。
如下是RingtonePreference的相关属性介绍:
| attr | description |
| — | — |
| android:ringtoneType | 铃声类型。ringtone/notification/alarm/all
|
| android:showDefault | 选项中默认的铃声。 |
| android:showSilent | 是否显示静音项。 |
2-2-8 组合控件PreferenceScreen
PreferenceScreen就Preference hierarchy的root节点,实例化他可以使用createPreferenceScreen(Context)方法;这个类可以依附于两个地方,当一个preferenceactivity指向他时用来作为根布局显示偏好,当他嵌套出现在另一个Preference hierarchy内部时他会启动一个新的界面来显示子项Preference或者设置的intent;综上也就是说它不仅可以作为设置界面显示,而且还能够启动activity,具体翻墙点我。
如下展示了作为根布局及子布局的两种情况:
<–! 作为根及子项展示设置界面>
<PreferenceScreen
xmlns:android=“http://schemas.android.com/apk/res/android”
android:key=“first_preferencescreen”>
<CheckBoxPreference
android:key=“wifi enabled”
android:title=“WiFi” />
<PreferenceScreen
android:key=“second_preferencescreen”
android:title=“WiFi settings”>
<CheckBoxPreference
android:key=“prefer wifi”
android:title=“Prefer WiFi” />
… other preferences here …
<–! 内嵌intent的模式>
<intent
android:targetPackage=“com.test.main”
android:targetClass=“com.test.main.activity”
2-2-9 组合控件PreferenceCategory
PreferenceCategory类似于LinearLayout,用于组合一组可设置标题的Preference,使布局更具备层次感,具体翻墙点我。
这个类也没有啥特殊的东西介绍,详细参考API。
到此常用的Preference组件xml属性介绍完毕,对应的java方法就不再说明了,还有就是他们的protect方法也不再详细介绍,具体参见API。
2-3 新增Headers相关基础组件属性说明
上面我们简单介绍了PreferenceScreen相关xml的属性,这些其实是老版本的处理方式;自从Android 3.0引入Fragment之后,Preference相关的控件也有了变化。
由于PreferenceActivity在3.0开始也需要能够处理多屏幕碎片化问题,所以Android 3.0之前采用PreferenceScreen嵌套的方法来跳转分类细则,而Android 3.0及之后使用了Preference Headers的方法来适配多屏幕碎片化问题。
他的核心就是在主屏中通过headers的xml布局列出所有的主题设置项,每个主题设置的详细设置由各自指定的PreferenceFragment负责,而各自的PreferenceFragment可以如传统的PreferenceActivity 一样布局自身的PreferenceScreen。
preference-headers就是他们的root,既然这样,那我们就来看看Headers相关的组件及方法吧。
2-3-1 PreferenceActivity.Header相关属性方法使用基础
点我翻墙查看。Header继承自Object,实现了Parcelable,用来展示一个item的header。
相关属性如下:
| attr | description |
| — | — |
| android:icon | |
| android:breadCrumbShortTitle | 在fragment显示的短标题文字。 |
| android:breadCrumbTitle | 在fragment显示的标题文字。 |
| android:fragment | 当选择该头文件时,将显示该fragment的全名称。 |
| android:id | 唯一识别id。 |
| android:summary | item描述信息。 |
| android:title | item头名称。 |
如下是一个简单展示:
<?xml version="1.0" encoding="utf-8"?>android:summary=“test 1”
android:title=“Name1”>
…
android:summary=“test”
android:title=“Name” >
<extra
android:name=“type”
android:value=“first” />
…
关于Header的用法下面会详细演示,基本情况就介绍到这里。