Android-Prefrence实现选项页面简介(1)
在Android开发中,我们经常遇到各种各样的列表选择页面,例如说Setting的页面,或者说出现的各种选择控件列表,使用XML编写显得冗长费时,使用ListView,RecyclerView之类的控件又无法应对多半环境,此时,我们就可以考虑采用Prefrence来实现界面效果,还等什么?让我们来一起了解一下吧!
1.Prefrence继承关系图
如下图所示,我整理了Preference的直接子类和间接子类
通过上图我们可以看出Preference相关的类,接下来,我们做一个简单的Demo项目,以学习如何使用这些类构建一个类似于设置的选项页面。
打开Android Studio,新建PreferenceDemo项目
首先为Preference编写XML文件,在res目录右键新建directory,命令为xml,在xml路径下新建setting.xml并编写如下代码:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen
android:title="测试01"
android:key="test01"
android:summary="test 01 ,test"></PreferenceScreen>
<PreferenceScreen
android:title="测试02"
android:key="test02"
android:summary="test 02 ,test"></PreferenceScreen>
<PreferenceScreen
android:title="测试03"
android:key="test03"
android:summary="test 03 ,test"></PreferenceScreen>
<PreferenceScreen
android:title="测试04"
android:key="test04"
android:summary="test 04 ,test"></PreferenceScreen>
</PreferenceScreen>
保存后修改MainActivity如下:
public class MainActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting);
}
}
打开Genymotion,运行效果图如下:
从上面操作中我们可以看到一些关键点
- PreferenceScreen相当于列表项
- android:title用来设置列表标题
- android:key唯一标识一个列表,相当于控件id
- android:summary相当于列表项详细描述