Android开发之 Preference首选项
来源:互联网 发布:事业单位面试网络课程 编辑:程序博客网 时间:2024/05/17 06:58
首选项最常使用的地方是系统的设置列表或应用程序的设置页。本示例在android 4.0+上运行。
在res/xml文件下建立xml文件,设置需要的控件。下面的xml文件使用了PreferenceCategory 、CheckBoxPreference、ListPreference。PreferenceCategory 是一个标题栏分隔符,表示分类。CheckBoxPreference复选框控件。ListPreference列表单选控件。常用的属性有android:key、android:title、android:summary、android:defaultValue。android:key相当于控件的id,在xml文件是键值对的键。android:title显示的名称。android:summary对此控件的藐视或解释。android:defaultValue首选项的默认值,即键值对的默认值。
ListPreference中的 android:entries属性是引用的选项列表, android:entryValues属性引用了各个选项对应值的列表。
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="设置"> <CheckBoxPreference android:defaultValue="true" android:icon="@mipmap/set" android:key="PREF_CHECK_BOX" android:summary="这里是描述" android:title="Check 选项" /> <ListPreference android:defaultValue="100" android:entries="@array/size_entry" android:entryValues="@array/size_entry_value" android:icon="@mipmap/ic_launcher" android:key="PREF_LIST" android:summary="list 描述" android:title="list选项" /> </PreferenceCategory></PreferenceScreen>
<?xml version="1.0" encoding="utf-8"?><resources> <!--选项列表--> <string-array name="size_entry"> <item>大</item> <item>中</item> <item>小</item> </string-array> <!--选项值的列表--> <string-array name="size_entry_value"> <item>大</item> <item>中</item> <item>小</item> </string-array></resources>
创建一个类并继承PreferenceFragment,重写onCreate()方法。
public class PreferenceF extends PreferenceFragment{ @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //添加上面的xml文件 addPreferencesFromResource(R.xml.perference); }}
创建Activity,在布局文件中引用PreferenceFragment。
<fragment android:id="@+id/fragment_pf" //通过name引用PreferenceFragment android:name="cn.xd.android8.pre.PreferenceF" android:layout_width="match_parent" android:layout_height="match_parent" />
运行效果如下:
下面介绍另一种使用首选项的方法,创建xml文件,添加header,设置引用的fragment。
//p_header.xml<?xml version="1.0" encoding="utf-8"?><preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> <header android:fragment="cn.xd.android8.pre.PreferenceF" android:icon="@mipmap/ic_launcher" android:summary="这是header的描述" android:title="header"> </header></preference-headers>
创建类并继承PreferenceActivity,重写onBuildHeaders()、isValidFragment()方法。
@Override public void onBuildHeaders(List<Header> target) { super.onBuildHeaders(target); //添加引用 loadHeadersFromResource(R.xml.p_header,target); } @Override protected boolean isValidFragment(String fragmentName) { return true; }
这样运行后,与上一个显示不同的是先显示p_header文件中的内容。
除了上面用到控件,还有EditTextPreference、MultiSelectListPreference、SwitchPreference等。EditTextPreference记录一段文本信息。MultiSelectListPreference多选的列表。SwitchPreference开关。
如果没有设置监听事件,你会发现点击改变控件的状态会被记录,如果设置了监听事件,就需要添加代码来完成状态的改变和记录。
如果想要实现点击某一首选项,进入另一个设置页面,请使用PreferenceScreen。
//可以引用PreferenceFragment,也可以在其内部添加 //android:layout属性能够引用一个自定义的layout <PreferenceScreen android:fragment="cn.xd.android8.pre.PreferenceF" android:layout="@layout/item_test" android:summary="PreferenceScreen" android:title="PreferenceScreen"> </PreferenceScreen> <PreferenceScreen android:summary="PreferenceScreen" android:title="PreferenceScreen"> <CheckBoxPreference android:key="PREF_CHECK_BOX3" android:summary="test" android:title="CheckBoxPreference" /> </PreferenceScreen>
设置一个可点击又没有状态类似TextView控件,要使用PreferenceScreen且设置setOnPreferenceClickListener事件。
<PreferenceScreen android:key="PREF_PreferenceScreen" android:summary="PreferenceScreen" android:title="充当点击的TextView"> </PreferenceScreen>
//获取控件实例,设置事件。CheckBoxPreference这类控件要设置setOnPreferenceChangeListener()事件。public void onCreate(@Nullable Bundle savedInstanceState) { ........ PreferenceScreen PREF_PreferenceScreen=(PreferenceScreen) findPreference("PREF_PreferenceScreen"); PREF_PreferenceScreen.setOnPreferenceClickListener(.........);}
- Android开发之 Preference首选项
- android中Preference(首选项)
- Android - Shared Preference (分享首选项) 详解
- Android中 首选项Preference的使用
- Android 开发之Preference
- Android 管理和组织首选项 (Preference) 附示例
- Preference---详解Android首选项框架的使用
- android中Preference(首选项)2--(组织首选项)
- ios 沙盒 preference 首选项 数据存储
- 安卓首选项preference的用法
- 灵活应用组策略-Preference首选项功能之共享文件夹!
- Xamarin.Android学习之应用程序首选项
- 应用程序首选项(application preference)及数据存储
- 【ubuntu】首选项和应用程序命令(preference & application)
- eclipse开发首选项
- Android开发学习笔记:数据存取之Preference浅析
- android 首选项 EditTextPreference
- android 首选项 RingtonePreference
- Unable to build: the file dx.jar was not loaded from the SDK folder
- h5 blog地图定位(外带key)
- Linux下使用系统调用的三种方法
- 替换ViewPager中某一页的Fragment
- 浅谈CSS3中的box-sizing(content-box与border-box)
- Android开发之 Preference首选项
- SQL Server2008 学习之(十六) :触发器的创建与使用
- 安卓换肤的一种实现思路
- 540. Single Element in a Sorted Array
- 算法提高 金陵十三钗 状态亚索DP
- debug。。。。
- CSS样式(样式表的三个特性)
- oj吃薯条
- 欢迎使用CSDN-markdown编辑器