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文件内容格式
/** 读取数据 */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", "姓名为空"));