SharePreferences是用来存储一些简单配置信息的一种机制,使用Map数据结构来存储数据,以键值对的方式存储,采用了XML格式将数据存储到设备中,路径为:/data/data/<package name>/shared_prefs。

只能在同一个包内使用,不能在不同的包之间使用

实现SharedPreferences存储的步骤如下:

1、根据Context获取SharedPreferences对象:

  SharedPreferences sp = getSharedPreferences(FileName, Activity.MODE_PRIVATE);

2、利用edit()方法获取Editor对象:

  Editor editor = sp.edit();

3、通过Editor对象操作key-value键值对数据:

插入数据:调用Editor.putxxxx方法,两个参数分别为键和值。

获取数据:调用Editor.getxxxx方法,两个参数分别为键和不存在指定键时的默认值。

删除数据:调用Editor.remove方法,参数为指定的键。

清空所有数据:调用Editor.clear方法

4、通过commit()方法提交数据:

  上述所有方法调用都必须执行Editor.commit方法来提交。

获取SharedPreferences的三种方式:

  • getSharedPreferences(name, mode):是Context类中的方法,可被同一应用程序下的其他组件共享
  • getPreferences():是Activity类中的方法,只需指定mode,只能在该Activity中使用.
  • getDefaultSharedPreferences():是PreferenceManager类中方法,存储每个应用的默认偏好设置

SharedPreferences的四种操作模式:

  • Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问
  • Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件
  • Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
  • Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

例子:将数据保存至SharedPreferences:

  1. SharedPreferences preferences = getSharedPreferences("user",Context.MODE_PRIVATE);
  2. Editor editor=preferences.edit();
  3. String name="xixi";
  4. String age="22";
  5. editor.putString("name", name);
  6. editor.putString("age", age);
  7. editor.commit();

例子:从SharedPreferences获取数据:

  1. SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
  2. String name = preferences.getString("name", "defaultname");
  3. String age=preferences.getString("age", "0");

重要方法

  • public abstract boolean contains (String key) :检查是否已存在该文件,其中key是xml的文件名。
  • edit():为preferences创建一个编辑器Editor,可以修改preferences里面的数据,但必须执行commit()方法。
  • getAll():返回preferences里面的多有数据。
  • getXxx(String key, boolean defValue):获取Xxx(Boolean/Float/Int/Long/String)型数据
  • registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener):注册一个当preference发生改变时被调用的回调函数。
  • unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener):删除当前回调函数。

一般都是创建一个单独的文件(implements SharedPreferences)来统一处理。

3.1 SharePreference的更多相关文章

  1. 安卓android sharepreference数据存储,保存输入框里面的数据

    Fragment 里面 使用轻量级的数据存储sharepreference ,代码思路清晰.保存输入框里面的数据,实现按钮保存. 个人项目中简单清晰代码: 赵存档 编写 ,可以参考: 类继承Fragm ...

  2. SharePreference 工具类封装

    import java.util.List;import java.util.Map;import java.util.Set;import com.alibaba.fastjson.JSON;imp ...

  3. Android引导指示层的制作 (ViewStub + SharePreference)

    引导指示界面是个什么鬼东西?一张图即明了:

  4. 利用Gson和SharePreference存储结构化数据

    问题的导入 Android互联网产品通常会有很多的结构化数据需要保存,比如对于登录这个流程,通常会保存诸如username.profile_pic.access_token等等之类的数据,这些数据可以 ...

  5. Android开发(二十四)——数据存储SharePreference、SQLite、File、ContentProvider

    Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程 ...

  6. SharePreference是如何实现的——序列化XML文件

    还记得上一篇我们讲到了用SharePreference来存储数据,那么究竟它是如何实现的呢,今天我们就来仔细看看其实现的细节,我们给它一个准确的名字,叫做XML序列化器(XmlSerializer). ...

  7. 对SharePreference的封装

    今天需要用到SharePreference来保存一些设置参数,因为要用到很多次 所以对它进行了封装: public class PrefUtils { public static void putBo ...

  8. sharepreference实现记住password功能

        SharePreference是用于保存数据用的.主要调用Context.getSharePreferences(String name, int mode)方法来得到SharePrefere ...

  9. sharepreference使用教程

    1.应用 SharePreference主要用于保存一些数据,比如用户登录后的user_id,user_mobile,这样就可以做自动登录了,每次判断SharePreference中有没有数据,有的话 ...

  10. SharePreference的使用

    SharePreference 一般用于保存偏好设置,比如说我们设置里的条目 sharepreference使用步骤 1.拿到sharepreference //拿到share preference ...

随机推荐

  1. RNN神经网络和英中机器翻译的实现

    本文系qitta的文章翻译而成,由renzhe0009实现.转载请注明以上信息,谢谢合作. 本文主要讲解以recurrent neural network为主,以及使用Chainer和自然语言处理其中 ...

  2. 转一篇老外写的博文:Android automated testing (Robotium)

    Robotium的中文资料甚少,只得求助于老外,发现了一篇不错的文章:https://blog.codecentric.de/en/2011/03/android-automated-testing- ...

  3. opencv透视变换

    关于透视投影的几何知识,以及求解方法,可以参考 http://media.cs.tsinghua.edu.cn/~ahz/digitalimageprocess/chapter06/chapt06_a ...

  4. vbs下载文件

    Dim Url,SavePath,FilenameUrl="http://www.kumi.cn/photo/43/7e/63/437e636e413071e3.jpg"SaveP ...

  5. 多个 git ssh key 配置 Ubuntu os

    1.生成ssh key: ssh-keygen -t rsa -C “email@sss.com” 此时,在~/.ssh/文件夹下会有两个文件, id_rsa 和 id_rsa.pub.分别保存ssh ...

  6. ajax XML

    <script src="jquery-1.11.2.min.js"></script> </head> <body> <se ...

  7. Java串口通信详解

    http://blog.csdn.net/kabini/article/details/1601324 ———————————————————————————————————————————————— ...

  8. socket笔记

    参考: http://www.cnblogs.com/dolphinX/p/3460545.html http://www.cnblogs.com/wei2yi/archive/2011/03/23/ ...

  9. linux-curl restful接口测试结果格式化

    最近在做restful api, 因为服务器不能直接访问, 所以测试只能通过ScureCRT 在一台linux 上curl. 但是返回结果很多的时候, 发现:草, 这个数据怎么都是乱码? 一大堆数据, ...

  10. 读取当前键值,并赋值给LED

    /********************************* 代码功能:读取当前键值,并赋值给LED 使用函数: digitalRead(数字输入端口号); 创作时间:2016*10*07 作 ...