SharedPreference的本质是基于XML文件存储的key-value键值对数据,存储的文件路径为/data/data/<包名>/shared_prefs目录下。
注意:SharedPreference只能保存简单的数据类型,如string,int类型。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。
1.存储数据
/**
*创建SharedPreferences对象,getSharedPreferences()方法中第一个参数为文件名称,第二个参数为指定应用程序访问权限。
*SharedPreferences的四种操作模式:
*Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。
*Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
*MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
*MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
*/
SharedPreferences sp = getSharedPreferences("user",Context.MODE_PRIVATE);
/**
*使用SharedPreferences接口的edit获得SharedPreferences.Editor对象,让user处于编辑状态。
*/
SharedPreferences.Editor editor = sp.editor();
/**
* 通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。
*/
editor.putString("name","zhangbiao");
editor.putString("psw","110");
/**
* 通过SharedPreferences.Editor接口的commit方法保存key-value对
*/
editor.commit();
2.读取数据
SharedPreferences sp = getSharedPreferences("user", Context.MODE_PRIVATE);
String name = sp.getString("name","默认值");
String psw = sp.getString("psw", "default");
3.清除指定数据
SharedPreferences sp = getSharedPreferences("user", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.remove("name");
editor.commit();
4.清空数据
SharedPreferences sp = getSharedPreferences("user", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.clear();
editor.commit();