Android——PreferenceActivity简单使用
2015-11-06 20:55
585 查看
在上一篇BlogSharedPreferences中已经介绍了SharedPreference的使用,发现保存和修改数据比较简单,但当我们将preferences和Activity结合使用时就可能有点麻烦,这时候要用到
PreferenceActivity和PreferenceFragment
这里我们介绍使用PrefernceFragment(PreferenceActivity类似使用)
先创建一个Fragmengt 叫做MyPreferenceFragment,让它继承自PreferenceFragment
在它的onCreate()函数中,从资源中添加一个Preference,
创建一个Preference资源
在res文件夹下面创建一个xml文件
下面我们开始介绍三种常用的preference(CheckBoxPreference,ListPreference,EditTextPreference)
首先介绍checkedbox:
打开刚刚新建的xml文件,新建一个preference如图
不要忘了指定key,这个用于我们读取preference状态
summaryOn:复选框勾选上的提示
summaryOff:复选框为勾选的提示
title:标题
然后回到刚刚我们的MyPreferenceFragment,
然后在MainActivity,通过按钮的点击事件切换
Fragment:
当然你得在MainActivity的布局文件中有一个id为btn_click 的按钮
点击按钮,切换到MyPreferenceFragment
ListPreference
在资源文件mypreference.xml中添加
这里我们要设置list的键集entries和值集合entryValues
新建一个values resource file,取名list_entry,在里面添加两个
接下来回到刚刚的mypreference.xml里给ListPreference 添加上数据
同样我们再添加一个EditTextPreference
看看运行图,就知道上面的title和summary 以及dialog的参数
这是ListPreference
当我们进行操作之后,退出程序,再进入,发现状态和我们退出前的状态是一样 的,说明参数已经自动保存
接下来我们要读取这些preference的状态
1,我们首先得根据key找到特定的preference,通过getPreferenceManager()取得当前PreferenceFragment或者PreferenceActivity的preference管理对象,在MyPreferenceFragment代码写:
PreferenceActivity和PreferenceFragment
这里我们介绍使用PrefernceFragment(PreferenceActivity类似使用)
先创建一个Fragmengt 叫做MyPreferenceFragment,让它继承自PreferenceFragment
public class MyPreferencesFragment extends PreferenceFragment
在它的onCreate()函数中,从资源中添加一个Preference,
addPreferenceFromResource("资源");//括号里的是一个资源
创建一个Preference资源
在res文件夹下面创建一个xml文件
下面我们开始介绍三种常用的preference(CheckBoxPreference,ListPreference,EditTextPreference)
首先介绍checkedbox:
打开刚刚新建的xml文件,新建一个preference如图
不要忘了指定key,这个用于我们读取preference状态
summaryOn:复选框勾选上的提示
summaryOff:复选框为勾选的提示
title:标题
然后回到刚刚我们的MyPreferenceFragment,
addPreferenceFromResource(R.xml.mypreference);//括号里的是一个资源
然后在MainActivity,通过按钮的点击事件切换
Fragment:
getFragmentManager().beginTransaction().replace(R.id.container,new MyPreferencesFragment()).commit();
当然你得在MainActivity的布局文件中有一个id为btn_click 的按钮
点击按钮,切换到MyPreferenceFragment
ListPreference
在资源文件mypreference.xml中添加
<ListPreference android:key="list" android:title="选择类型" android:entries="" android:entryValues=""/>
这里我们要设置list的键集entries和值集合entryValues
新建一个values resource file,取名list_entry,在里面添加两个
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="entries"> <item>中文</item> <item>日文</item> <item>英文</item> </string-array> <string-array name="entryValues"> <item>chinese</item> <item>japanese</item> <item>english</item> </string-array> </resources>
接下来回到刚刚的mypreference.xml里给ListPreference 添加上数据
<ListPreference android:key="list" android:title="选择类型" android:entries="@array/entries" android:entryValues="@array/entryValues"/>
同样我们再添加一个EditTextPreference
<EditTextPreference android:key="editText" android:summary="输入姓名" android:title="个人信息" android:dialogTitle="姓名" android:dialogMessage="中文汉字不少于两个" />
看看运行图,就知道上面的title和summary 以及dialog的参数
这是ListPreference
当我们进行操作之后,退出程序,再进入,发现状态和我们退出前的状态是一样 的,说明参数已经自动保存
接下来我们要读取这些preference的状态
1,我们首先得根据key找到特定的preference,通过getPreferenceManager()取得当前PreferenceFragment或者PreferenceActivity的preference管理对象,在MyPreferenceFragment代码写:
private PreferenceManager pf;//全局字段 pm=getPreferenceManager();//onCreate()方法里面 pm.findPreference( //取得preference对象 ListPreference listPreference= (ListPreference) pm.findPreference("list"); EditTextPreference editTextPreference= (EditTextPreference) pm.findPreference("editText"); CheckBoxPreference checkBoxPreference= (CheckBoxPreference) pm.findPreference("checkBox"); //读取参数并显示 StringBuffer buffer=new StringBuffer(); buffer.append("当前checkBox的选中状态:"); buffer.append(checkBoxPreference.isChecked()); buffer.append("当前List的选中(键:值)----("); buffer.append(listPreference.getEntry().toString()); buffer.append(":"+listPreference.getValue()+")"); buffer.append("当前ediText的输入为:"); buffer.append(editTextPreference.getText()); Toast.makeText(MyPreferencesFragment.this.getActivity(), buffer.toString(), Toast.LENGTH_SHORT).show();
相关文章推荐
- 在doc命令中创建android模拟器镜像sdcard
- android studio 安装过程中intelhaxm-android不能安装的解决办法s
- 一个简易的指南针
- 查询android资源R对应的空间
- Android Studio1.3/1.4如何升级Gradle到version 2.5
- 好用的搜索命令grep
- Android Graphics Pipeline: From Button to Framebuffer (Part 2)
- 烧机命令
- Android之ProgressBar读取文件进度解析
- 远端绑定Service第三篇之客户端的Service
- Android Handler学习笔记
- Android TextView中插入图片
- 布局文件中控件中加入extra中的值
- 检查 android.mk条件如果执行,在android.mk中打印日志信息
- Android ProGuard 混淆 详解
- android Volley 使用
- android-2048游戏
- Android之TabHost布局
- android Spinner默认不选中
- android listview 长按事件setOnItemLongClickListener不响应问题