使用SharedPreferences存储简单数据

博客介绍了如何在Android中使用SharedPreferences进行轻量级数据存储,包括命名存储名字、创建实例、使存储处于可编辑状态、保存和读取键值对数据的步骤,并提供了一个Demo示例链接。

使用SharedPreferences存储简单数据

这是一种轻量级数据存储方式,通过SharedPreferences,可以将NVP(Name/Value pair, 名称/值对)保存到Android的文件系统中,并且它屏蔽了对文件系统的操作过程,仅通过SharedPreferences提供的函数就可以方便地实现对NVP的保存和读取。
NVP,或描述为键值对(key,value),key是一个用来代替value来进行操作的关键字名,为String型,如:private final static String USERNAME = “username”;而value是用户保存的数据。
下面略写SharedPreferences的一般使用方式。

1. 一般步骤

1.1 命名SharedPreferences存储的名字,以及需要存储value的key

private final static String SP_INFO = "Login";          // 创建的 Sharedpreferences 存储的名字,
private final static String USERNAME = "username";      // USERNAME和PASSWORD即为两个key
private final static String PASSWORD = "password";

1.2 使用getSharedPreferences()函数创建实例

SharedPreferences sp = getSharedPreferences(SP_INFO, MODE_PRIVATE);

getSharedPreferences()函数的原型为:public SharedPreferences getSharedPreferences(String name, int mode),其中name为存储名,如上一步中的“SP_INFO”;mode为访问模式,有三种类型:MODE_PRIVATE(私有)、MODE_WORLD_READABLE(全局读)、MODE_WORLD_WRITEABLE(全局写)。

1.3 使创建的sp处于可编辑状态

SharedPreferences.Editor editor = sp.edit();

使用创建的实例sp调用SharedPreferences类提供的edit()方法,可使sp处于可编辑状态,edit()方法返回SharedPreferences.Editor接口实例。该接口的常用方法如下:

方法名称描述
public abstract clear()清除所有数据
public abstract boolean commit()提交更新的数据
public abstract putBoolean(Sring key, boolean value)保存boolean类型的数据
public abstract putFloat(String key, float value)保存float类型的数据
public abstract putInt(String key, float value)保存int类型的数据
public abstract putLong(String key, long value)保存long类型的数据
public abstract putString(String key, String value)保存String类型的数据
public abstract remove(String key)删除指定key的数据

1.4 保存数据

editor.putString(USERNAME, username);
editor.putString(PASSWORD, password);

使用上一步返回的实例editor来调用SharedPreferences.Editor接口提供的方法保存数据,以键值对 (key, value) 方式保存。

1.5 提交更新的数据

editor.commit(); 

至此,数据保存步骤完毕。

以下,为数据读取的步骤。

1.6 读取数据

String username = sp.getString(USERNAME, null);
String username = sp.getString(PASSWORD, null);

用sp实例调用SharedPreferences提供的方法读取数据。常用的方法如下:

方法名称描述
public abstract SharedPreferences.Editor edit()使实例处于可编辑状态
public abstract Boolean contain(String key)判断一个key是否存在
public abstract Map<String,?> getAll()读取全部数据
public abstract boolean getBoolean(String key, boolean defValue)读取boolean类型数据,如果读取失败,返回指定的默认值defValue
public abstract float getFloat(String key, float defValue)读取float类型数据,如果读取失败,返回指定的默认值defValue
public abstract int getInt(String key, int defValue)读取int类型数据,如果读取失败,返回指定的默认值defValue
public abstract long getLong(String key, long defValue)读取long类型数据,如果读取失败,返回指定的默认值defValue
public abstract String getString(String key, String defValue)读取String类型数据,如果读取失败,返回指定的默认值defValue

2. Demo

一个练习的例子。若有错误或不妥之处,欢迎指正,欢迎交流!
https://github.com/devilanwen/A-demo-of-SharedPreferences

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值