Preference提供了一种轻量级的数据存取方法,主要是数据比较少的配置信息。它以键值对的方式将数据保存在一个XML配置文件中。
使用Preference方式来存取数据,用到了SharedPreferences接口和SharedPreferences的一个内部接口SharedPreferences.Editor。
调用Context.getSharedPreferences(String name, int mode)得到SharedPreferences接口,name是XML文件名称,mode是打开方式(MODE_PRIVATE(私有),MODE_WORLD_READABLE(可读),MODE_WORLD_WRITEABLE(可写))。
SharePreferences提供了获取不同类型数据的方法,getT(String key, T defValue)(这里T代表数据类型),key为键名称,defValue为默认值。调用SharePreferences的edit()方法来获得SharedPreferences.Editor内部接口,该接口提供提供了保存数据的方法,putT(String key, T value),然后调用commit()方法将数据保存。
SharePreferences接口的常用方法如下:
方法名称 | 方法描述 |
edit() | 返回SharedPreferences的内部接口SharedPreferences.Editor |
cantains(String key) | 判断是否包含该键值 |
getAll() | 返回所有配置信息Map |
getT(String key, T defValue) | 获取一个T值,T为基本类型,T可被替换为“Boolean”,“Float”,“Int”,“Long”或“String”。 |
SharePreferences.Editor接口的常用方法如下:
方法名称 | 方法描述 |
clear() | 清除所有值 |
commit() | 保存 |
getAll() | 返回所有配置信息Map |
putT(String key, T value) | 保存一个T值 |
remove(String key) | 删除该键对应的值 |
EG:
//获取值
String programset = "PROGRAMSET";
SharedPreferences pre = getContext().getSharedPreferences(programset,MODE_WORLD_READABLE);
String message = pre.getString("MESSAGE","");
//保存值
String programset = "PROGRAMSET";
SharedPreferences.Editor editor = getContext().getSharedPreferences(programset,MODE_WORLD_READABLE).edit();
editor.putString("MESSAGE","HELLO WORLD");
deitor.commit();
被保存的数据作文XML文件被保存到了/data/data/package/shared_prefs/下面了。