使用Shared Preferences存储数据

一、Shared Preferences简介

  SharedPreferences是Android系统提供的一个轻量级的存储类,主要用于保存一些配置信息,比如窗口状态,还有一切其它无关紧要的配置,每次都即拿即用的数据。注意不能用于存储敏感信息,因为它是暴露的(不安全的,当然也可以使用权限来控制,但不提倡)。

  SharedPreferences使用键值的形式来存储数据,可以对常用数据类型boolean、float、int、long以及String进行保存。保存的数据以xml文件的形式存储在/data/data/<包名>/shared_prefs目录下。


二、使用Shared Preferences擦写数据

  使用Shared Preferences存储数据可以通过以下3个步骤来实现:

  (1)使用Context类提供的getSharedPreferences()方法,获取SharedPreferences对象。getSharedPreferences()方法的原型如下:

  public abstract SharedPreferences getSharedPreferences(String name, int mode);

  其中,参数name表示存储数据的文件名。有一点需要注意的是,此处只是定义了该文件名,如果曾经没有创建过该文件,那么此刻也不会马上被创建该文件只有当创建了SharedPreferences.Edit对象并使用该对象的commit()方法提交数据时,才会被创建。总的来说,此步骤就是在准备参数。

  参数mode用于指定文件的操作模式,其可选值有Context.MODE_APPEND(内容追加模式)、Context.MODE_PRIVATE(默认操作模式)、Context.MODE_WORLD_READABLE(可读模式)、Context.MODE_WORLD_WRITEABLE(可写模式)四种:

  Context.MODE_APPEND;//内容追加模式。在该模式下,系统会检查文件是否存在,如果存在,则将内容追加到文件的末尾,如果文件不存在,则创建该文件并写入内容。

  Context.MODE_PRIVATE;//默认操作模式。在该模式下,文件作为私有数据,只能被该应用程序本身访问。并且,在该模式下,写入的内容会覆盖原文件的内容。这种方式也是最普遍的一种方式。

  Context.MODE_WORLD_READABLE;//可读模式。在该模式下,别的应用程序可以读取该文件内容。

  Context.MODE_WORLD_WRITEABLE;//可写模式。在该模式下,别的应用程序可以将内容写入该文件。

  (2)使用SharedPreferences对象的edit()方法创建SharedPreferences.Edit对象使用Shared Preferences方式存储数据时需要借助SharedPreferences.Edit类提供的方法来添加数据。SharedPreferences.Edit类提供的方法包括putString()、putInt()、putDouble()等,参数均为键、值。

  此步就是获得Edit对象:SharedPreferences.Editor edit = sharedPreferences.edit();

  然后edit.putXXX(" ",XXX); 储存数据,或者edit.remove("键")删除某个数据,或者edit.clear()清除全部数据。所有的数据擦写操作用的都是edit对象的方法。

  (3)使用commit()方法提交数据。

  实际上,Edit的用法就等于一个缓冲区,把你想要做的操作都记录下来,然后commit(),一次性完成你要做的事情。

  成功返回true,失败返回false.

  示例:

[java]  view plain  copy
 print ?
  1. boolean isSaveDataSuccess = false;             
  2. SharedPreferences sharedPreferences = this.getSharedPreferences(fileName, Context.MODE_PRIVATE);  
  3. SharedPreferences.Editor edit = sharedPreferences.edit();      
  4. edit.putString("userName""admin");  
  5. isSaveDataSuccess = edit.commit();  

二、使用Shared Preferences读取数据

[java]  view plain  copy
 print ?
  1. //第一个参数为文件名  
  2.        SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);  
  3.        //第二个参数为读取时失败返回的值  
  4.        String userName = sharedPreferences.getString("userName""null");  


三、其它获取Shared Preferences的方法

一、PreferenceManager.getDefaultSharedPreferences():顾名思义,获取全局变量的Preferences,也就是PreferenceActivity生成的Preference;(什么是PreferenceActivity?查看此处http://blog.csdn.net/plussoft/article/details/9993759

二、getPreferences():可以获取当前Activity中的preference,这个方法我没用过(主要是没搞懂);


以上部分内容转载或参考来源如下:

http://www.cnblogs.com/menlsh/archive/2013/04/07/3006510.html
在此表示感谢。
转载请注明来源,版权归原作者所有,未经同意严禁用于任何商业用途。
微博:http://weibo.com/theworldsong
邮箱:theworldsong@foxmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值