开发者社区> walb呀> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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();

本文转自博客园农民伯伯的博客,原文链接:Android 中文api (88)——SharedPreferences,如需转载请自行联系原博主。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android使用FFmpeg的API库
Android使用FFmpeg的API库
0 0
Android Studio进行APP设计调用百度地图API接口隐藏百度地图的logo方法
Android Studio进行APP设计调用百度地图API接口隐藏百度地图的logo方法
0 0
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
0 0
Android 垃圾分类APP(一)申请API、搭建项目、访问接口获取数据
Android 垃圾分类APP(一)申请API、搭建项目、访问接口获取数据
0 0
Android 百度翻译API(详细步骤+源码)
Android 百度翻译API(详细步骤+源码)
0 0
Android 天气APP(十九)更换新版API接口(更高、更快、更强)
Android 天气APP(十九)更换新版API接口(更高、更快、更强)
0 0
android 名称 版本 Api
android 名称 版本 Api
0 0
Android 极光推送API
Android 极光推送API
0 0
Android 天气APP(三)访问天气API与数据请求
Android 天气APP(三)访问天气API与数据请求
0 0
Android开发版本和API等级对应关系
Android开发版本和API等级对应关系
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
CUDA Math API
立即下载
阿里云 API 精选手册(Alibaba Cloud API Playbook)
立即下载
重保场景及API安全指南
立即下载