SharedPreferences类

android.content.SharedPreferences

类概括:

访问和修改由函数getSharedPreferences(String,int)返回的首选项的接口。对于任何特定的首选项集合,所有客户端共享此类的单个实例。

必须通过SharedPreferences.Editor对象修改属性的值,以确保属性值保持一致状态,当提交存储时,起到控制作用。从不同的get方法返回的对象必须被视为不可变。

注意:此类不再支持多线程。

嵌套类

interface

SharedPreferences.Editor 用于修改SharedPreferences对象的接口

interface

SharedPreferences.OnSharedPreferenceChangeListener 此接口定义,当一个首选项属性发生改变,一个回调会被调用。
共有方法

abstract boolean

contains(
String key)

核对是否属性集中包含属性。

abstract
SharedPreferences.Editor

edit()


为这些属性集创建一个新的Editor,通过这个Editor你可以把修改选项集中的数据,并且自动提交这些改变到SharedPreferences对象。

abstract
Map<
String, ?>

getAll()

检索所有属性集中的值

abstract boolean

getBoolean(
String key, boolean defValue)

检索属性集中的布尔值。

abstract float

getFloat(
String key, float defValue)

检索属性集中的float值。

abstract int

getInt(
String key, int defValue)

检索属性集中的int值。

abstract long

getLong(
String key, long defValue)

检索属性集中的long值。

abstract
String

getString(
String key,
String defValue)

检索属性集中的string值。

abstract
Set<
String>

getStringSet(
String key,
Set<
String> defValues)

检索属性集中的string集合值。

abstract void

registerOnSharedPreferenceChangeListener(
SharedPreferences.OnSharedPreferenceChangeListener listener)


注册一个当属性值改变时调用的回调函数。

abstract void

unregisterOnSharedPreferenceChangeListener(
SharedPreferences.OnSharedPreferenceChangeListener listener)

注销一个原先的回调函数。

使用共享的配置(Preferences)

SharedPreferences类提供了一个通用的框架,用于保存和检索以持久化的键值对形式存储的原始数据类型。你可以使用SharedPreferences保存任意类型的原始数据:布尔(boolean),浮点(float),整型(int),长整型(long)和字符串(string)。这些数据将会存放在用户会话中(即使你的应用程序已经退出)。

为了获得SharedPreferences对象,可以使用下面的两种方法中的一种:

  1. getSharedPreferences()方法,当需要多个由第一个参数指定名称属性文件;
  2. getPreferences()方法,如果Activity仅仅需要一个属性文件。因为可能Acitivity仅仅有一个属性文件,所以不需要名称区别。

写属性值:

  1. 调用 edit() ,取得SharedPreferences.Editor
  2. 使用例如 putBoolean()putString()方法添加值;
  3. 使用 commit() 函数提交新值。

读属性值,可以使用 SharedPreferences 类的方法,例如 getBoolean()getString()

下面是一个使用无声的按键保存属性的例子:

public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile"; @Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . . // Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
} @Override
protected void onStop(){
super.onStop(); // We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode); // Commit the edits!
editor.commit();
}
}

Android学习之SharedPreferences类的更多相关文章

  1. Android学习总结——SharedPreferences

    SharePreferences存储方式,只是轻量级数据存储,xml格式的数据显示方式.简单存储步骤如下:一:获取SharePreferences对象1.SharedPreferences pref ...

  2. Android学习之SharedPreferences

    SharedPreferences使用键值对的方式来存储数据,并支持多种不同类型的数据存储. 1.界面布局 <TableLayout xmlns:android="http://sch ...

  3. Android学习笔记Log类输出日志信息

    Log类提供的方法 代码示例 .. Log.e(TAG,"[错误信息]"); Log.w(TAG,"[警告信息]"); Log.i(TAG,"[普通信 ...

  4. 【Android】19.1 SharedPreferences类

    分类:C#.Android.VS2015: 创建日期:2016-03-05 一.简介 SharedPreferences:简单共享存储首选项.实际上就是用加密的内部文件保存所有页面都能访问的一系列“n ...

  5. Android 中替代 sharedpreferences 工具类的实现

    Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...

  6. 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...

  7. Android学习笔记_8_使用SharedPreferences存储数据

    1.SharedPreferences介绍: Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数.使用SharedPrefer ...

  8. 【转】Pro Android学习笔记(十四):用户界面和控制(2):Text类控制

    目录(?)[-] TextView 例子1在XML中设置autoLink属性 例子2在代码中设置autoLink属性 EditText AutoCompleteTextView MultiAutoCo ...

  9. Android学习路线总结,绝对干货

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

随机推荐

  1. 【POJ 2010 Moo University-Financial Aid】优先级队列

    题目链接:http://poj.org/problem?id=2010 题意:C只牛犊,各有自己的分数score和申请的补助aid,现要选出N只(N为奇数),使得其aid的总和不超过F,且按score ...

  2. Java程序员面试题集(86-115)

    摘 要:下面的内容包括Struts 2和Hibernate的常见面试题,虽然Struts 2在2013年6月曝出高危漏洞后已经显得江河日下,而Spring MVC的异军突起更加加速了Struts 2的 ...

  3. Android日语输入法Simeji使用示例

    MainActivity如下: package cn.testsimeji; import android.os.Bundle; import android.view.View; import an ...

  4. Python 单词字母顺序不变且所有倒排

    翻出google測试project师的一道题目: 设计一个函数,不论什么语言都能够,实现下面功能: 一个句子,将句子中的单词所有倒排过来,但单词的字母顺序不变.eg.  this is a real ...

  5. 频繁模式挖掘apriori算法介绍及Java实现

    频繁模式是频繁地出如今数据集中的模式(如项集.子序列或者子结构).比如.频繁地同一时候出如今交易数据集中的商品(如牛奶和面包)的集合是频繁项集. 一些基本概念 支持度:support(A=>B) ...

  6. STL之nth_element()(取容器中的第n大值)

    nth_element()函数 头文件:#include<algorithm> 作用:nth_element作用为求第n大的元素,并把它放在第n位置上,下标是从0開始计数的,也就是说求第0 ...

  7. poj 2429 Pollard_rho大数分解

    先对lcm/gcd进行分解,问题转变为从因子中选出一些数相乘,剩下的数也相乘,要求和最小. 这里能够直接搜索,注意一个问题,因为同样因子不能分配给两边(会改变gcd)所以能够将同样因子合并,这种话,搜 ...

  8. 中秋佳节--理解Enum枚举

    一.Enum枚举的作用 1.使用枚举可以限定取值范围,枚举中定义的每个常量都可以理解为对象: Eg: Public enum Color{ RED, GREEN,BULE; } 说明:RED实际上就表 ...

  9. 初次使用Oracle

    这是我第一次写博客,主要是记录下自己这半个多月以来的学习笔记,以备以后可以随时查看. 首先就是安装Oracle的问题的,我系统是Win7 64位的,出现各种问题郁闷得不行,最终安装个Oracle102 ...

  10. 解决安装Visual Studio 2012后SQL Server 2008 远程过程调用失败的问题

    安装了Visual Studio 2012后,打开SQL Server 2008配置管理器,发现了一个问题.如下图 解决办法: