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. Android Animations 视图动画使用详解!!!

    转自:http://www.open-open.com/lib/view/open1335777066015.html Android Animations 视图动画使用详解 一.动画类型 Andro ...

  2. jquery中使用offset()获得的div的left=0,top=0

    写东西的时候要获取div的left和top,但怎么也取不到值都为0,但在chrome的console下是可以取到值的, 瞬间就纳闷了,于是乎就在网上找各种方法,大家一般的问题可能都是要获取的div被隐 ...

  3. UESTC_邱老师选妹子(二) 2015 UESTC Training for Dynamic Programming<Problem I>

    I - 邱老师选妹子(二) Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Su ...

  4. D-Separation(D分离)

    是属于 Bayesian network 中的概念

  5. Oracle SQL函数之转换函数

    chartorowid(c1) [功能]转换varchar2类型为rowid值 [参数]c1,字符串,长度为18的字符串,字符串必须符合rowid格式 [返回]返回rowid值 [示例] SQL> ...

  6. 【计算几何初步-凸包-Jarvis步进法。】【HDU1392】Surround the Trees

    [科普]什么是BestCoder?如何参加? Surround the Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65 ...

  7. diffuse linux 文件比对工具

    linux下比较好用的可视化文件比对工具

  8. [记录]关于vertical-align单/多选框与说明文字对齐效果

    效果图:    第一张使用label标签,第二张没有使用.. 使用label标签,middle对齐方式的单选框下降了1px 而没有使用label标签,sub对齐方式的 却 居 中 了 =_= 不太理解 ...

  9. LINQ 操作符(二)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. 在Red Hat Enterprise Linux 5 64-bit安装oracle11g r2

    网上这种文档一搜就一堆,没别的目的,刚接触oracle为了加深理解记忆.只要是跟我的版本一样操作系统和oracle软件,按照步骤肯定可以成功安装 在虚拟机上安装Red Hat Enterprise L ...