我的Android笔记(十一)——使用Preference保存设置

原创 2012年03月22日 12:26:47


Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。

四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。


可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设置界面,只要给它指定一个配置好的xml,它就能自动根据操作更改程序Preference的相应值。

比如在res目录下建立一个xml文件夹,然后新建一个seeting.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <CheckBoxPreference
        android:defaultValue="false"
        android:key="boolean_value"
        android:summary="保存一个boolean值"
        android:title="Checkbox" />

    <EditTextPreference
        android:defaultValue="defaultString"
        android:key="string_value"
        android:name="EditText"
        android:summary="保存一个字符串"
        android:title="Edit Text" />

</PreferenceScreen>
checkBoxPreference对应一个boolean值,EditTextPreference对应一个String。 android:key是标识符,必须是唯一的。

然后建立一个SettingActivity.java,内容如下:

import android.com.ui.R;
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class SettingActivity extends PreferenceActivity{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.setting);
    }
}
代码addPreferencesFromResource(R.xml.setting);即给这个PreferenceActivity指定了一个xml,这样,当打开此界面时的效果图:


每次更改界面的设置之后,程序会自动持久化保存新的值。

而在程序的其他地方获取到设置的值也很简单,只需通过标识符,如获取上文中标识符为“boolean_value”和“string_value”的值, 只需

		boolean booleanValue = PreferenceManager.getDefaultSharedPreferences(
				this).getBoolean("boolean_value", false);
		String stringValue = PreferenceManager.getDefaultSharedPreferences(this)
				.getString("string_value", "");

即可获得。

PreferenceManager.getDefaultSharedPreferences(Context)是一个静态方法,获取到一个全局的Preference对象,在程序中的任何地方都是唯一的,getBoolean和getString方法的第二个参数是默认值,是在获取key失败时的默认返回值。


----------------------------------------------------------

我写的一个demo,下载地址:http://download.csdn.net/detail/barryhappy/4161548



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android app系统设置界面 数据的保存与读取 SharedPreferences 的正确使用

很开心的是经历过两个多月的努力,项目在11月份即将要交付使用,基础功能已经完成,剩下的是系统设定界面没有开发完毕,如下图:        很显然要实现的功能是几个界面要显示很多数据,要依据某...

android:使用Properties保存程序配置

Java.util.PropertiesProperties类是Java操作配置文件类,是JAVA的api,主要用于读取Java的配置文件。 其实各种语言都有自己所支持的配置文件。 配置文件是为了...
  • cch1024
  • cch1024
  • 2016年05月14日 22:02
  • 1167

Android-SharedPreference自动保存和手动保存数据-刘宇

什么是SharedPreference呢,他是安卓里面的一个轻量级的存储器,以键值对的方式存在,保存的目录在应用程序下的一个文件夹中。下面我们来看看如何使用这个SharedPreference来手动保...

Android中Preference的使用以及监听事件分析

转载请注明出处: http://blog.csdn.net/qinjuning                    在Android系统源码中,绝大多数应用程序的UI布局采用了Preferen...

EditTextPreference 设置 defaultValue 的数据类型显示问题

EditTextPreference 设置 defaultValue 的数据类型 我们经常使用PreferenceFragment来设置应用的一些配置参数,通常我们需要自定义一个xml文件,用来...

Android高手进阶教程(七)之----Android 中Preferences的使用!

大家好,我们这一节讲的是Android Preferences 的学习,Preferences 在Android当中被用来记录应用,以及用户喜好等等,它可以用来保存简单的数据类型,如Int,Doubl...

Android学习笔记(四十):Preference的使用

Preference直译为偏好,博友建议翻译为首选项。一些配置数据,一些我们上次点击选择的内容,我们希望在下次应用调起的时候依然有效,无须用户再一次进行配置或选择。Android提供preferenc...

Preferences入门

概述         在应用中经常会包含"设置"界面,该界面允许用户进行一些选择,从而更改应用的外观等。用户在"设置"界面更改之后的值通常保存在SharedPreferences中,但是如果自己通过代...

android preference介绍

android preference              向用户提供一些参数设置的接口,可以使用preferences相关的一些类,就可以很方便的呈现...
  • zzobin
  • zzobin
  • 2013年08月20日 17:17
  • 3618

Android中SharedPreference实例

     SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。其以键值对的方式存储,使得我们能很方便进...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的Android笔记(十一)——使用Preference保存设置
举报原因:
原因补充:

(最多只允许输入30个字)