转载自http://blog.csdn.net/furongkang/article/details/6804897感谢作者提供
SharedPreferences(参数)存储
很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:
在程序中保存一些配置参数的时候我们经常使用SharedPreferences
Context.getSharedPreferences(String name,int mode)
该方法可以在/data/data/<package>/shared_pref/目录下创建一个以name命名的xml文件,mode文件为模式
存储偏好
调用edit()方法可以获取一个Editor对象,对数据进行存储,存储之后需要调用commit()保存到文件
读取偏好
获得SharedPreferences之后调用getString()、getInt()等方法获取其中设置的值
在Activity中获取SharedPreferences
在Activity中可以调用getPreferences(int mode)方法获得一个SharedPreferences,文件名和Activity名一致
- /**
- * 使用SharedPreferences进行数据存储
- * @param name name属性
- * @param age age属性
- */
- public void save(String name, String age) {
- // 获取SharedPreferences对象, 路径在 /data/data/cn.itcast.preferences/shared_pref/preferences.xml, 文件模式为MODE_PRIVATE
- SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);
- // 获取编辑器
- Editor editor = preferences.edit();
- // 通过editor进行设置
- editor.putString("name", name);
- editor.putString("age", age);
- // 提交修改, 将数据写出到文件
- editor.commit();
- }
- /**
- * 访问SharedPreferences中的数据
- * @return 偏好设置名值组成的Map
- */
- public Map<String, String> load() {
- SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);
- String name = preferences.getString("name", "");
- String age = preferences.getString("age", "");
- Map<String, String> map = new HashMap<String, String>();
- map.put("name", name);
- map.put("age", age);
- return map;
- }