博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 中文api (88)——SharedPreferences
阅读量:6005 次
发布时间:2019-06-20

本文共 3163 字,大约阅读时间需要 10 分钟。

正文

  一、结构

 

public interface SharedPreferences

        

android.content.SharedPreferences

 

 

  二、概述

 

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

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

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

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

  参见

        

 

 

  三、内部类

 

           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对象进行的修改,那么你必须调用方法。

返回值

返回一个的新实例,允许你修改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

        异常

   

 

public abstract float getFloat (String key, float defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

   

 

public abstract int getInt (String key, int defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

   

 

public abstract long getLong (String key, long defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

   

 

public abstract String getString (String key, String defValue)

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

    参数

key            获取的preference的名称

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

返回值

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

异常

   

 

public abstract void registerOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)

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

参数

listener    将会被调用的回调函数

        参见

    

 

public abstract void unregisterOnSharedPreferenceChangeListener (SharedPreferences.OnSharedPreferenceChangeListener listener)

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

参数

listener    要被注销的回调函数

参见

    

 

 

  五、补充

 

 

      文章精选

              

                   

                   

                   

    示例代码

 

      译注: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,如需转载请自行联系原作者
你可能感兴趣的文章
win10去除快捷方式小箭头
查看>>
KendoUI和wijmoUI 它们的Grid比较 20120423
查看>>
Centos服务器被挂马的一次抓马经历
查看>>
mysql数据库innobackupex热备
查看>>
Spring MVC 架构的java web工程如何添加登录过滤器
查看>>
返回一个整数数组中最大子数组的值(程序能处理1000个元素)
查看>>
[Android]如何判断屏幕是圆形的(手表设备)
查看>>
Dubbo Admin管理控制台
查看>>
单例模式
查看>>
SQL资料
查看>>
新浪微博的账号登录及api操作
查看>>
淘宝code
查看>>
机器学习-决策树
查看>>
内存池技术畅想
查看>>
计算机网络笔试面试常考考点
查看>>
MySQL Binlog的介绍
查看>>
[c++] 用宏定义一个函数
查看>>
微软语音输入法的图标隐藏了在怎么显示出来
查看>>
安装express
查看>>
创建服务类PO
查看>>