`
caryt
  • 浏览: 8800 次
文章分类
社区版块
存档分类
最新评论

SharedPreferences详解

 
阅读更多

正文

  一、结构

public interfaceSharedPreferences

android.content.SharedPreferences

  二、概述

  用于访问和修改getSharedPreferences(String, int)返回偏好设置数据(preference data)的一个接口。对于任何一组特殊的preferences,所有的客户端共享一个此类单独的实例。

修改Preferences必须通过一个SharedPreferences.Editor对象,以确保当他们提交存储数据的操作时,preference值保持一致的状态。

  注意:当前此类不支持多线程访问。后续将添加。

  (译者注:这里译为偏好设定,类似于ini文件,用于保存应用程序的属性设置)

  参见

  getSharedPreferences(String, int)

  三、内部类

interface SharedPreferences.Editor

  用于修改SharedPreferences对象设定值的接口。

  interface SharedPreferences.OnSharedPreferenceChangeListener

  接口定义一个用于在偏好设定(shared preference)改变时调用的回调函数。

  四、公共方法

public abstract booleancontains(String key)

判断preferences是否包含一个preference

参数

key想要判断的preference的名称

返回值

如果preferences中存在preference,则返回true,否则返回false

public abstract SharedPreferences.Editoredit()

针对preferences创建一个新的Editor对象,通过它你可以修改preferences里的数据,并且原子化的将这些数据提交回SharedPreferences对象。(译者注:原子化——作为一个整体提交,原子性)

注意:如果你想要在SharedPreferences中实时显示,刚通过Editor对象进行的修改,那么你必须调用commit()方法。

返回值

返回一个SharedPreferences.Editor的新实例,允许你修改SharedPreferences对象里的值。

public abstract Map<String, ?>getAll()

取得preferences里面的所有值

返回值

返回一个map,其中包含一列preferences中的键值对

异常

空指针异常(NullPointerException)

public abstract boolean getBoolean (String key, boolean defValue)

从preferences中获取一个boolean类型的值。

参数

key 获取的preference的名称

defValue当此preference不存在时返回的默认值

返回值

如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个boolean类型,则抛出ClassCastException

异常

ClassCastException

public abstract float getFloat (String key, float defValue)

preferences中获取一个float类型的值。

参数

key 获取的preference的名称

defValue当此preference不存在时返回的默认值

返回值

如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个float类型,则抛出ClassCastException

异常

ClassCastException

public abstract intgetInt(String key, int defValue)

preferences中获取一个int类型的值。

参数

key 获取的preference的名称

defValue当此preference不存在时返回的默认值

返回值

如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个int类型,则抛出ClassCastException

异常

ClassCastException

public abstract longgetLong(String key, long defValue)

preferences中获取一个long类型的值。

参数

key 获取的preference的名称

defValue当此preference不存在时返回的默认值

返回值

如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个long类型,则抛出ClassCastException

异常

ClassCastException

public abstract StringgetString(String key, String defValue)

preferences中获取一个String类型的值。

参数

key 获取的preference的名称

defValue当此preference不存在时返回的默认值

返回值

如果preference存在,则返回preference的值,否则返回defValue。如果使用此名称的preference不是一个String类型,则抛出ClassCastException

异常

ClassCastException

public abstract voidregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)

注册一个回调函数,当一个preference发生变化时调用。

参数

listener将会被调用的回调函数

参见

unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener)

public abstract voidunregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)

注销一个之前(注册)的回调函数

参数

listener要被注销的回调函数

参见

registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener)

  五、补充

    示例代码

      译注:Shared Preferences保存位置:/data/data/app_name/shared_prefs/*.xml

复制代码
privatebooleanflag=false;

//取得活动的Preferences对象
SharedPreferencessettings=getPreferences(Activity.MODE_PRIVATE);
//取得值
flag=settings.getBoolean(“flag”,false);

//取得活动的Preferences对象
SharedPreferencessettings=getPreferences(0);
//取得编辑对象
SharedPreferences.Editoreditor=settings.edit();
//添加值
editor.putBoolean(“true”,flag);
//提交保存
editor.commit();
复制代码
分享到:
评论

相关推荐

    android的SharedPreferences详解

    **Android的SharedPreferences详解** SharedPreferences是Android系统提供的一种轻量级的数据存储方式,它主要用于应用程序中简单数据的持久化存储,例如用户设置、应用状态等。SharedPreferences采用键值对的形式...

    Android本地存储SharedPreferences详解

    Android本地存储SharedPreferences详解 存储位置 SharedPreferences数据保存在: /data /data/&lt;package&gt; /shared_prefs 文件夹下,以XML格式保存,根元素为:。文件名称为获取SharedPreferences实例时传递的參数值。...

    SharedPreferences

    **SharedPreferences详解** `SharedPreferences`是Android系统提供的一种轻量级的数据存储方式,它主要用于应用程序中简单数据的持久化存储,例如用户设置、应用状态等。`SharedPreferences`采用键值对的形式来保存...

    Android的SharedPreferences(用于保存系统设置)

    **Android的SharedPreferences详解** SharedPreferences是Android系统提供的一种轻量级的数据存储方式,主要用于保存应用程序的简单配置信息,如用户设置、应用状态等。它是一种基于XML文件的持久化存储,通常用于...

    Android通过"记住密码"功能学习数据存储类SharedPreferences详解及实例

    `SharedPreferences`是Android系统提供的一种轻量级的数据存储机制,主要用于存储应用的配置信息或者简单的用户数据。本文将深入讲解`SharedPreferences`的工作原理,并通过实现“记住密码”的功能来具体演示其使用...

    Android中SharedPreferences知识的深入研究.pdf

    【Android中的SharedPreferences详解】 SharedPreferences是Android系统提供的一种轻量级的数据存储机制,它主要用于存储应用程序中的配置信息或者一些简单的用户数据,例如用户设置、登录凭证等。与Web程序中的...

    Android通过”记住密码”功能学习数据存储类SharedPreferences详解及实例

    SharedPreferences是Android中存储简单数据的一个工具类。可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名/...

    Android SharedPreferences存储用法详解

    SharedPreferences详解 SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,...

    数据存储之Preferences

    二、SharedPreferences详解 1. 使用方式:SharedPreferences通过Context对象获取,如`getSharedPreferences(String name, int mode)`,其中name是SharedPreferences文件的名称,mode是访问模式,如MODE_PRIVATE...

    首选项应用讲解

    **SharedPreferences详解** SharedPreferences是一个接口,用于在应用程序之间持久化简单的键值对数据。这些数据通常是基本类型,如字符串、整型、浮点型、布尔型等。SharedPreferences存储的数据是跨应用程序进程...

    android 的数据存储

    #### SharedPreferences详解 - **SharedPreferences是什么?** - `SharedPreferences`是一种轻量级的数据存储方式,主要用于存储简单的键值对数据。 - 在Android中,它通常用来保存用户的偏好设置、应用状态等...

    自己封装的ShardPreferences 工具类

    **共享偏好SharedPreferences详解** 在Android应用开发中,我们经常需要保存一些轻量级的数据,比如用户的设置、状态等。这时,SharedPreferences就成为一个理想的解决方案。它提供了键值对存储功能,支持基本数据...

    Android SharedPreferences四种操作模式使用详解

    Android SharedPreferences详解 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Activity对象的getPreferences()方法 两种方式的区别: 调用Context对象的...

    Android 跨进程SharedPreferences异常详解

    Android 跨进程SharedPreferences异常详解 Android 跨进程SharedPreferences异常详解是指在Android系统中,SharedPreferences在跨进程访问时出现的异常问题。SharedPreferences是Android系统提供的一种轻量级的存储...

    使用SharedPreferences进行数据存储

    以上就是关于`SharedPreferences`在Android中进行数据存储的详解,希望对你理解和使用这个工具有所帮助。如果想了解更多细节,可以参考给定的博客链接:[博客链接](https://hack-zhang.iteye.com/blog/1265370)。

    SharedPreferences工具类

    2. **API详解** - **获取SharedPreferences实例**: - `getSharedPreferences(String name, int mode)`: 全局的SharedPreferences,根据指定名称和模式创建实例。 - `getPreferences(int mode)`: 当前Activity的...

Global site tag (gtag.js) - Google Analytics