应用程序中有一些格式比较简单的数据需要保存,例如普通的字符串,标量类型的值啦等等,用来判断程序中某个状态或者与其他应用共享数据啦,这时候使用数据库sqllite、或者文件有点儿大材小用。故Android提供了SharedPreferences来进行保存
简单了解
SharedPreferences保存的数据主要类似于配置信息格式的数据,所以保存的数据类型是简单的Key-Value对。但是SharePreferences接口本身没有提供写入数据的能力,但是可以通过调用SharedPreferences的内部接口edit()来获取它的Editor对象,Editor对象提供相关方法来向SharedPreference写入数据。
SharedPreferences 本身为一个接口,程序无法直接创建SharedPreferences 实例,只能通过Context提供的getSharedPreferences (String name,int mode)方法来获取SharedPreferences 实力。该方法第二个参数Mode支持如下几个值:
Context.MODE_PRIVATE 指定该SharedPreferences 数据只能被本应用数据读写。
Context.MODE_WORLD_READABLE 指定该SharedPreferences 数据能被其他应用读,但是不能写。
Context.MODE_WORLD_WRITEABLE 指定该SharedPreferences 数据可以被其他应用读写。
相关方法介绍:
SharedPreferences
boolean contains(String key);判断SharedPreferences 是否包含特定key的数据;
Map<String, ?> getAll();获取SharedPreferences 数据里全部的key-value对;
Editor edit();为外部返回Editor对象;
boolean getXxx(String key,xxx defValue);获取SharedPreferences数据中指定key对应的value,如果该key不存在,返回默认的defValue。目前具备的方法如下:
boolean getBoolean(String key, boolean defValue);
float getFloat(String key, float defValue);
long getLong(String key, long defValue);
int getInt(String key, int defValue);
Set<String> getStringSet(String key, Set<String> defValues);
String getString(String key, String defValue);
SharedPreferences 内部接口editor()返回Editor对象,Editor提供如下方法写入数据:
Editor remove(String key);删除SharedPreferences 里指定key的数据
Editor clear();清空SharedPreferences 里的全部数据
boolean commit();当Editor编辑完成后,调用该方法提交修改。
void apply();
Editor putString(String key, String value);各种putXxx方法,用于向SharedPreferences 里存入指定key对应的数据。
Editor putStringSet(String key, Set<String> values);
Editor putInt(String key, int value);
Editor putLong(String key, long value);
Editor putFloat(String key, float value);
Editor putBoolean(String key, boolean value);
Demo下载:
百度云盘:http://pan.baidu.com/s/1cgDNzw 点击下载