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:

SharedPreferences preferences = getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="xixi";
String age="22";
editor.putString("name", name);
editor.putString("age", age);
editor.commit();

例子:从SharedPreferences获取数据:

SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name = preferences.getString("name", "defaultname");
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. 10.11 安装pod

    原文地址:http://www.jianshu.com/p/5fc15906c53a  感谢. 更新升级10.11 cocoapods安装出问题最简单的解决方法 这是因为10.11把cocoapods ...

  2. Android IOS WebRTC 音视频开发总结(七三)-- 我为什么走上了创业这条不归路?

    本文主要介绍自己为什么选择创业,文章最早发表在我们的微信公众号上,支持原创,详见这里, 欢迎关注微信公众号blackerteam,更多详见www.rtc.help 2016.06.01对公司来说是个很 ...

  3. Python自动化 【第五篇】:Python基础-常用模块

    目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re ...

  4. CentOS 6.5下搭建LAMP环境详细步骤

    1.确认搭建LAMP所需的环境是否已经安装: [root@localhost ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl li ...

  5. JavaScript 基础(七) 箭头函数 generator Date JSON

    ES6 标准新增了一种新的函数: Arrow Function(箭头函数). x => x *x 上面的箭头相当于: function (x){ return x*x; } 箭头函数相当于匿名函 ...

  6. HttpUtility.UrlEncode

  7. jquery表格增加删除后改变序号

    有个小bug,懒得修了. 目的:增加一行的时候,td第一列排序. 删除一行的时候,td第一列排序 <!DOCTYPE HTML> <html> <head> < ...

  8. 特征工程 dataframe格式

    import os import copy import codecs import operator import re from math import log from pyspark.sql ...

  9. js中this对象,call,apply

  10. Gradle basic

    1. execute default file (build.gradle) gradlew 2. execute another file gradlew -b [filename] 3.  bas ...