Android 中文api (88)——SharedPreferences

简介:

正文

  一、结构

 

public interface SharedPreferences

        

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 boolean contains (String key)

判断preferences是否包含一个preference

参数

key 想要判断的preference的名称

返回值

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

 

public abstract SharedPreferences.Editor edit ()

针对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 int getInt (String key, int defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

ClassCastException   

 

public abstract long getLong (String key, long defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

ClassCastException   

 

public abstract String getString (String key, String defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

ClassCastException   

 

public abstract void registerOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)

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

参数

listener    将会被调用的回调函数

        参见

    unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener)

 

public abstract void unregisterOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)

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

参数

listener    要被注销的回调函数

参见

    registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener)

 

 

  五、补充
 

 

      文章精选

              SharedPreferences

                   [Android开发者指南第十八讲:Android SharedPreferencesFile

                   SharedPreferences用法

                   Android程式設計 (十五使用SharedPreferences

    示例代码

 

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

private   boolean  flag  =   false ;

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

// 取得活动的Preferences对象
SharedPreferences settings  =  getPreferences( 0 );
// 取得编辑对象
SharedPreferences.Editor editor  =  settings.edit();
// 添加值
editor.putBoolean(“ true ”,flag);
// 提交保存
editor.commit();


本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582420,如需转载请自行联系原作者
相关文章
|
8月前
|
定位技术 API 开发工具
Android 按照步骤接入百度地图API,定位显示不了解决办法
Android 按照步骤接入百度地图API,定位显示不了解决办法
225 0
|
3月前
|
存储 XML 文件存储
Android数据存储:什么是SharedPreferences?它有什么用途?
Android数据存储:什么是SharedPreferences?它有什么用途?
74 0
|
4月前
|
存储 Android开发
Android SharedPreferences的使用
Android SharedPreferences的使用
29 0
|
7月前
|
API Android开发
mPaaS(移动跨平台框架)目前已经支持了Android API级别21
mPaaS(移动跨平台框架)目前已经支持了Android API级别21
106 2
|
8月前
|
Android开发
Android 中SharedPreferences的详解
Android 中SharedPreferences的详解
37 0
|
8月前
|
API 数据库 Android开发
Android SQLite数据库中基础的增删改查操作以及API的详解
Android SQLite数据库中基础的增删改查操作以及API的详解
65 0
|
10月前
|
API Android开发
Android Activity Result API
Android Activity Result API
98 0
|
11月前
|
Java API Android开发
Sui为根应用提供Java APIs,滴API。主要提供直接使用Android APIs的能力(几乎以Java作为root的身份
Sui为根应用提供Java APIs,滴API。主要提供直接使用Android APIs的能力(几乎以Java作为root的身份,在root下启动app自己的AIDL风格的Java服务。这将使root应用程序开发变得更加容易。
142 0
|
12月前
|
缓存 Java API
Android音频API
MediaRecorder与MediaPlayer并不能算完整意义的音频API,它们只是系统音频API的封装,除了采集/播放,他们集成了编码/解码、复用/解复用等能力。它们在最底层还是调用了AudioRecorder、AudioTrack。下面主要介绍它们的几个主要的配置项。
357 0
|
存储 XML 缓存
Android 初代 K-V 存储框架 SharedPreferences,旧时代的余晖?
SharedPreferences 是 Android 平台上轻量级的 K-V 存储框架,亦是初代 K-V 存储框架,至今被很多应用沿用。 有的小伙伴会说,SharedPreferences 是旧时代的产物,现在已经有 DataStore 或 MMKV 等新时代的 K-V 框架,没有学习意义。但我认为,虽然 SharedPreference 这个方案已经过时,但是并不意味着 SharedPreference 中使用的技术过时。做技术要知其然,更要知其所以然,而不是人云亦云,如果要你解释为什么 SharedPreferences 会过时,你能说到什么程度?
114 0