SharedPreferences是Android的一个轻量级存储工具,采用的存储结构是Key-Value的键值对方式,类似于Java的Properties类,二者都是把Key-Value的键值对保存在配置文件中。不同的是Properties的文件内容是Key=Value这样的形式,而SharedPreferences的存储介质是符合XML规范的配置文件。保存Sharedreferences键值对信息的文件路径是/data/data/应用包名/shared_prefs/文件名.xml。
下面是一个共享参数的XML文件示例:
Mr Lee
基于XML格式的特点,SharedPreferences主要适用于如下场合:
(1)简单且孤立的数据。若是复杂且相互间有关的数据,则要保存在数据库中。
(2)文本形式的数据。若是二进制数据,则要保存在文件中。
(3)需要持久化存储的数据。在App退出后再次启动时,之前保存的数据仍然有效。实际开发中,共享参数经常存储的数据有App的个性化配置信息、用户使用App的行为信息、临时需要保存的片段信息等。
Sharedreferences 对数据的存储和读取操作类似于Map,也有put 函数用于存储数据、get函数用于读取数据。在使用共享参数之前,要先调用getSharedPreferences 函数声明文件名与操作模式,示例代码如下:
//从share.xml中获取共享参数对象
SharedPreferences shared = getSharedPreferences("share", MODE_PRIVATE);
getSharedPreferences方法的第一个参数是文件名,上面的 share 表示当前使用的共享参数文件名是share.xml;第二个参数是操作模式,一般都填MODE_PRIVATE,表示私有模式。共享参数存储数据要借助于Editor类,示例代码如下:
//从share.xml中获取共享参数对象
SharedPreferences shared = getSharedPreferences("share", MODE_PRIVATE);
SharedPreferences.Editor editor= shared.edit(); //获得编辑器的对象
editor.putString("name", "MrLee"); //添加一个名叫name的字符串参数
editor.putInt("age", 30); //添加一个名叫age的整型参数
editor.putBoolean("married", true); //添加-个名叫married 的布尔型参数
editor.putFloat("weight", 100f); //添加一个名叫weight的浮点数参数
editor.commit(); // 提交编辑器中的修改
共享参数读取数据相对简单,直接使用对象即可完成数据读取方法的调用,注意get方法的第二个参数表示默认值,示例代码如下:
String name = shared.getString("name",""); //从共享参数中获得名叫name的字符串
int age = shared.getInt("age",0); //从共享参数中获得名叫age的整型数
boolean mrried = shared.getBoolean("married",false); //从共享参数中获得名叫maried的布尔数
float weight= shared.getFloat("weight",0); //从共享参数中获得名叫weight的浮点数
















