Android_PreferenceActivity
来源:互联网 发布:网络小仙女是什么意思 编辑:程序博客网 时间:2024/06/02 00:45
为了引入这个概率 首先从需求说起 即:现有某Activity专门用于手机属性设置 那么应该如何做呢?
根据已学知识 很快一个念头闪过 即:Activity + Preference 组合 前者用于界面构建 后者用于设置数据存放 其实 这是正确的 但是 这会比较繁琐 因为 每个设置选项 都要建立与其对应的Preference
所以 现在有更好的选择了 那就是本文的主角:PreferenceActivity 从名字应该可以看出 其实 Activity 与 Perference 的混合物
这个例子中包括了PreferenceActivity中常见的几种组件,以下为具体介绍及用法:
PreferenceScreen:设置页面,可嵌套形成二级设置页面,用Title参数设置标题,summary设置描述(标题下面的文字),key设置唯一的ID,每个PreferenceScreen内可添加其它元素作为二级设置页面。
PreferenceCategory:某一类相关的设置,可用Title参数设置标题。
CheckBoxPreference:是一个CheckBox设置,只有两种值,true或false,可用Title参数设置标题sumary设置描述,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示,defaultValue设置默认值。
ListPreference:下拉框选择控件,用Title参数设置标题,用Summary参数设置说明,点击后出现下拉框,用dialogTitle 设置下拉框的标题,下拉框内显示的内容和具体的值需要在res/values/array.xml中设置两个array来表示。
<?xml version="1.0" encoding="utf-8"?><resources><string-array name="entries_list_preference"> <item>test1</item> <item>test2</item> <item>test3</item></string-array><string-array name="entriesvalue_list_preference"> <item>1</item> <item>2</item> <item>3</item></string-array></resources>
这个PreferenceActivity中的设置存储是完全自动的,你不需要再用代码去实现设置的存储,PreferenceActivity创建后会自动创建一个配置文件/data/data/you_package_name /shared_prefs/you_package_name_you_xml_name.xml。
上例中自动生成的配置文件如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><string name="EditTextPreference">12332312</string><string name="ListPreference">2</string><string name="RingtonePreference">content://settings/system/ringtone</string><boolean name="CheckBox1" value="true" /><boolean name="CheckBox2" value="true" /></map>要取得其中的值可以通过如下的方法:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
value = prefs.getString(”ListPreference”, “unset”);
监听设定变化问题 普通布局里的监听 比较简单 先通过findViewById()获得目标View 再在其上注册监听器即可
但是 PreferenceActivity 并没有提供findViewById() 也就无法监听 那么 怎么做呢? - 得到SharedPreferences 句柄
sp = PreferenceManager.getDefaultSharedPreferences(this);
在 sp 之上注册改变监听器
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener(){@Override//sharedPreferences:句柄//key: 改变 键值public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {// TODO Auto-generated method stubif(key.equals("autoBack")){Boolean autoBack = sharedPreferences.getBoolean("autoBack", false);if(autoBack){Log.d("TAG","autoBack: true!");}else {Log.d("TAG","autoBack: false!");}}}});
Android提供了Preference供应用可以进行功能设置以及属性配置等操作,检查android.preference可以看到 Preference下有若干子类,例如常用的EditTextPreference、CheckBoxPreference、 ListPreference等。
- Android_PreferenceActivity
- Android_PreferenceActivity
- BeautifulSoup帮助文档
- S3C2440中断解析和基于WINCE操作系统的中断分析(整理于网络,用于按键中断使用)
- 如何做测试后的数据分析
- CentOS开启mysqld远程连接权限
- srilm安装及ngram-count简单使用
- Android_PreferenceActivity
- Entity Framework之问题收集
- C# WinForm控件的拖动和缩放的实现
- 中文字符、汉字在PHP正则表达式里该怎么表达
- mysql基本命令
- Android开发性能优化简介
- 用python 获取当前时间
- 【2012年终总结】之一 opencv + ds采集摄像头视频 MFC点点滴滴
- DataGridView隔行变色鼠标经过改变形状及行变色