android学习 -- SharedPreferences(参数)存储

来源:互联网 发布:万历十五年 总结 知乎 编辑:程序博客网 时间:2024/05/17 22:07

转载自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名一致

 

[html] view plaincopy
  1. /**  
  2.  * 使用SharedPreferences进行数据存储  
  3.  * @param name name属性  
  4.  * @param age age属性  
  5.  */  
  6. public void save(String name, String age) {  
  7.     // 获取SharedPreferences对象, 路径在 /data/data/cn.itcast.preferences/shared_pref/preferences.xml, 文件模式为MODE_PRIVATE  
  8.     SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);  
  9.     // 获取编辑器  
  10.     Editor editor = preferences.edit();  
  11.     // 通过editor进行设置  
  12.     editor.putString("name", name);  
  13.     editor.putString("age", age);  
  14.     // 提交修改, 将数据写出到文件  
  15.     editor.commit();  
  16. }  
  17.   
  18. /**  
  19.  * 访问SharedPreferences中的数据  
  20.  * @return 偏好设置名值组成的Map  
  21.  */  
  22. public Map<String, String> load() {  
  23.     SharedPreferences preferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);  
  24.     String name = preferences.getString("name", "");  
  25.     String age = preferences.getString("age", "");  
  26.     Map<String, String> map = new HashMap<String, String>();  
  27.     map.put("name", name);  
  28.     map.put("age", age);  
  29.     return map;  
  30. }
0 0
原创粉丝点击