SharedPreference是Android中存储简单数据的一个工具类。可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean,int,float,long,String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中。
SharedPreferences接口的常用方法
NO |
方法 |
类型 |
描述 |
1 |
public abstract SharedPreferences.Editor edit() |
普通 |
使其处于可编辑状态 |
2 |
public abstract boolean contains(String key) |
普通 |
判断某一个key是否存在 |
3 |
public abstract Map<String, > getAll() |
普通 |
取出全部的数据 |
4 |
public abstract boolean getBoolean(String key, boolean defValue) |
普通 |
取出boolean型数据,并指定默认值 |
5 |
public abstract float getFloat(String key,float defValue) |
普通 |
取出float型数据,并指定默认值 |
6 |
public abstract int getInt(String key,int defValue) |
普通 |
取出int型数据,并指定默认值 |
7 |
public abstract long getLong(String key,long defValue) |
普通 |
取出long型数据,并指定默认值 |
8 |
public abstract String getString (String key,String defValue) |
普通 |
取出String型数据,并指定默认值 |
SharedPreferences.Editor接口
※ 如果现在要想进行数据的写入,则必须首先通过SharedPreferences类所提供的edit()方法
才可以让其处于可编辑的操作状态,此方法返回的对象类型是android.content.
SharedPreferences.Editor接口实例。
SharedPreferences.Editor接口的常用方法
NO |
方法 |
类型 |
描述 |
1 |
public abstract SharedPreferences.Editor clear() |
普通 |
清除所有的数据 |
2 |
public abstract boolean commit() |
普通 |
提交更新的数据 |
3 |
public abstract SharedPreferences.Editor putBoolean(String key, boolean value) |
普通 |
保存一个boolean型数据 |
4 |
public abstract SharedPreferences.Editor putFloat(String key, float value) |
普通 |
保存一个float型数据 |
5 |
public abstract SharedPreferences.Editor putInt(String key, int value) |
普通 |
保存一个Int型数据 |
6 |
public abstract SharedPreferences.Editor putLong(String key, long value) |
普通 |
保存一个Long型数据 |
7 |
public abstract SharedPreferences.Editor putString(String key, String value) |
普通 |
保存一个String型数据 |
8 |
public abstract SharedPreferences.Editor remove(String key) |
普通 |
删除指定key的数据 |
Activity类对SharedPreferences接口的支持
※ 由于SharedPreferences和SharedPreferences.Editor两个都是接口,所以要想取得
SharedPreferences接口的实例化对象,还需要Activity类中的几个常量和方法的支持
No |
常量及方法 |
类型 |
描述 |
1 |
public static final int MODE_PRIVATE |
常量 |
创建的文件只能被一个应用程序调用,或被具有相同id的应用程序访问 |
2 |
public static final int MODE_WORLD_READABLE |
常量 |
允许其他应用程序读取文件 |
3 |
public static final int MODE_WORLD_WRITEABLE |
常量 |
允许其他应用程序修改文件 |
4 |
public SharedPreferences getSharedPreferences( String name,int mode) |
常量 |
指定保存操作的文件名称,同时指定操作的模式,可以是0、 MODE_PRIVATE、 MODE_WORLD_READABLE、 MODE_WORLD_WRITEABLE |
它提供一种轻量级的数据存储方式,通过edit()方法来修改里面的内容,通过Commit()来提交修改后的内容。
private static final String FILENAME = "duanran"; private TextView tv_id = null; private TextView tv_name = null; /** 写入数据 */ SharedPreferences shared = super.getSharedPreferences(FILENAME, MODE_PRIVATE); SharedPreferences.Editor editor = shared.edit(); //editor.remove("id"); //editor.remove("name"); editor.putInt("id", 001); editor.putString("name", "张三"); editor.commit();
//生成的xxx.xml文件内容格式
<map>
<id name="id">XXX</id>
<string name="name" value="张三">
</map>
/** 读取数据 */ SharedPreferences read_shared = super.getSharedPreferences( FILENAME, Activity.MODE_PRIVATE); this.tv_id.setText("ID:" + read_shared.getInt("id", 0)); this.tv_name.setText("姓名:" + read_shared.getString("name", "姓名为空"));