SharedPreferences轻量级的存储类简述

一 SharedPreferences类概述

在Android开发中,经常需要将少量简单类型数据保存在本地,如:用户设置。这些需要保存的数据可能一两个字符串,像这样的数据一般选择使用SharedPreferences来保存。SharedPreferences是一个轻量级的存储类,特别适合用于保存软件配置参数。(是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下)SharedPreferences可以保存的数据类型有:int、boolean、float、long、String、StringSet。

二 SharedPreferences使用

1 使用SharedPreferences保存key-value对

步骤1
使用 Activity 类的 getSharedPreferences 方法获得 SharedPreferences对 象,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称(格式为xml文件),如果指定的文件不存在则会创建一个!!!,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

步骤2
使用 SharedPreferences 接口的 edit 获得 SharedPreferences.Editor 对象

步骤3
通过 SharedPreferences.Editor 接口的 putXXX 方法保存 key-valu 对 其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。 putString(String key, String value)//写入String类型的数据

步骤4
通过SharedPreferences.Editor接口的commit方法保存key-value对 commit方法相当于数据库事务中的提交操作。

使用SharedPreferences保存key-value对的代码如下:

SharedPreferences sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);  
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "小明");
editor.putInt("age", 24);
editor.commit();//提交修改

生成的test.xml文件内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
		 <string name="name">小明</string>
		<int name="age" value="24" />
</map>

例如:

	// 获取 名字为 AlarmShutdown.xml文件 ,并写入 LAST_ALARM_TIME 的数值,设置为 timer
    SharedPreferences pre = context.getSharedPreferences("AlarmShutdown", context.MODE_PRIVATE);
    SharedPreferences.Editor presEditor = pre.edit();
    presEditor.putString(LAST_ALARM_TIME,timer);
    presEditor.commit();
2 使用SharedPreferences读取key-value对

步骤1
使用Activity类的getSharedPreferences方法获得SharedPreferences对象

 SharedPreferences sharedPreferences= getSharedPreferences("test",  Activity.MODE_PRIVATE); 

步骤2
通过SharedPreferences对象的getXXX方法获取数据 ,例如使用getString方法获得value,注意第2个参数是value的默认值 String name =sharedPreferences.getString(“name”, “”); 或 int age =sharedPreferences.getInt(“age”, 0);

使用SharedPreferences读取key-value对的代码如下:

 SharedPreferences sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);
 String name = sharedPreferences.getString("name", ""); //getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
 int age = sharedPreferences.getInt("age", 1);//读取age 没有的话默认设置为1

例如:

//获取 AlarmShutdown.xml文件
 SharedPreferences pre = context.getSharedPreferences("AlarmShutdown", context.MODE_PRIVATE);
 String ret = pre.getString(LAST_ALARM_TIME,"08:00");//获取LAST_ALARM_TIME值,没有的话默认设置为08:00

注意:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取

Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux老A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值