我的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



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

Andorid通话设置界面添加perference

1.要在添加一个perference,在必须在xml文件里添加  2.在java文件里,实现perference所要表现出来的功能。 如下: 在xml里             andro...
  • shishanqing920610
  • shishanqing920610
  • 2016年01月06日 00:28
  • 221

玩转Andorid---组件篇---数据存储之preference

原址:http://hualang.iteye.com/category/143855 程序是数据的输入、处理和输出的过程,不管是操作系统还是应用程序都是不可避免的要用到大量的数据。由于内存容量...
  • luckypeng
  • luckypeng
  • 2015年07月29日 12:34
  • 317

Android存储(读取)之SharedPerference(最常用)

使用方法 通过上下文获取spsp = context.getSharedPreferences("config", MODE_PRIVATE);获取到sp的编辑器Editor editor = sp....
  • Android_Study_OK
  • Android_Study_OK
  • 2016年05月15日 13:02
  • 638

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

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

Android针对保存用户设置的设计

在一些App里面总会保存一些用户自己的一些设定,比如一些背景音乐的播放,是否定时提醒。在最近学习的过程里面我总结了一下,心里面也有了自己的一些想法。通过之前讲的一个建立多个Activiyy可读取的共享...
  • ZQL2288
  • ZQL2288
  • 2017年04月25日 19:44
  • 200

android:使用Properties保存程序配置

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

Android使用Properties保存本地配置

先看下Properties类的继承结构 Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 一个属性列表可...
  • zhe_ge_sha_shou
  • zhe_ge_sha_shou
  • 2017年07月08日 15:30
  • 574

SharePreference保存list

一、工具类,直接复制到你代码中 import android.content.Context; import android.content.SharedPreferences;import com....
  • bobo89455100
  • bobo89455100
  • 2017年02月04日 11:26
  • 1814

Android 保存List数据(SharedPreferences)

存储List数据到本地的方式有很多种,对于不想用sqlite或者其他方式,又或是数据量很少的话,不妨可以试下用 SharedPreferences保存。由于SharedPreferences只能保存M...
  • baiyulinlin1
  • baiyulinlin1
  • 2016年08月10日 14:23
  • 14181

android中SharedPreferences和PreferenceActivity的存取数据

本文主要介绍SharedPreferences和PreferenceActivity的基础知识和用法。          主要资料来源于网络,包括但不限于: 《Android之Preference...
  • JoeBaby_
  • JoeBaby_
  • 2012年09月12日 17:06
  • 4934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的Android笔记(十一)——使用Preference保存设置
举报原因:
原因补充:

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