Android Preference 须知
一、理论
1.前言
在Android的应用开发中经常会涉及到设置界面的设计开发,为此Android提供了名为Preference的设置处理机制,沿用这种机制的话能省去开发者很多不必要的时间开支。
那Preference究竟是什么呢?看一下你Android手机里的“设置”这个应用就知道了,大体界面如下:
这个设置界面就是通过Preference构建的,可能有些同学会说,这不就是一个普通的LinearLayout吗?有什么特别的?下面我们就开具体说说什么是Preference。
2.什么是Preference?
Preference翻译过来是“偏爱,爱好”的意思,在Android中Preference是一个具体的类,它代表着一个最基本的UI块(可以理解为ListView中的一个item),并且显示在Activity或Fragment内置的ListView上面,如图1-1中的“声音”选项,就是一个Preference的UI块表现(这里为什么要说表现呢?因为Preference本身并不是继承View的视图类,它只是代表着一个偏好选项然后通过提供UI块来展示这些偏好选项)。并且每一个UI块都会和一个SharePreferences关联来保存或恢复偏好设置。
3.Preference从何而来?
得到Preference的方法有两种:一种是从Xml文件中获取,在Xml文件中每一个节点都能指定特定的Preference的子类。另外一种方法就是在代码中动态的创建。为了处理好Preference与SharePreferences的关联,Preference类提供了一个Key来作为使用SharePreferences时的Key。
4.Preference的子类们
开关类型:
TwoStatePreference是一个抽象类,它下面的两个子类CheckBoxPreference和SwitchPreference。
弹出框类型:
弹出框类型的都继承子虚拟类DialogPreference,分别是EditPreference,MultiCheckPreference,ListPreference,MultiSelectListPreference,SeekBarDialogPreference,VolumePreferenc。
特殊:
RingtonePreference和SeekBarPreference分别是铃声选择和滑块。
组类型:
组类型都继承子抽象类PreferenceGroup,其中PreferenceCategory表示分类,PreferenceScreen主要用来表示一个设置界面中的根节点。
5.Preference其他相关类介绍:
GenericInflater:用于解析xml文件
PreferenceInflater:继承自GenericInflater用于解析包含Preference的xml
PreferenceActivity:在kk和之前的版本上用于显示一系列Preference的Header(标头,用于跳转到对应的PreferenceFragment),从L开始PreferenceActivity的功能被PreferenceFragment集成了。
PreferenceFragment:用ListView来显示一系列Preference的层次结构。
PreferenceManager:用于帮助从xml或代码中创建Preference的层次结构。
二、实践
1.从xml文件中构建Preference ,主要代码如下:
—-PreferencesFromXml.java—-
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XMLresource
//这个方法在L上已经不被提倡使用
addPreferencesFromResource(R.xml.preferences);
}
preferences文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!--BEGIN_INCLUDE(preferences) -->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/inline_preferences">
<CheckBoxPreference
android:key="checkbox_preference"
android:title="@string/title_checkbox_preference"
android:summary="@string/summary_checkbox_preference" />
</PreferenceCategory>
<PreferenceCategory
an
今天的文章android preferencefragment_什么是Android「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/74523.html