Android——PreferenceActivity简单使用

27 篇文章 0 订阅

在上一篇BlogSharedPreferences中已经介绍了SharedPreference的使用,发现保存和修改数据比较简单,但当我们将preferences和Activity结合使用时就可能有点麻烦,这时候要用到
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();

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值