Android中Shared Preferences的使用


SharedPreference是一种比较适合少量数据的存储方式,类似于HashMap,采用的键-值得关系,使用起来非常非常的简单,并且还能够对数据的变动进行监控。

例如,一些默认欢迎语、登录的用户名和密码等。其以键值对的方式存储,使得我们可以很方便的读取和存入,

监控数据变动直接通过:

preference.registerOnSharedPreferenceChangeListener(this);

那么当你用editor.putString(key,value);将原来的key对应的value改变后,那么在

nces, String key)这个接口中可以对这个时间进行监控.

onSharedPreferenceChanged(SharedPreferences sharedPrefer e

我们可以通过[getXXX]函数,从SharedPreferences中读取不同类型的内容,例如,上面我们使用的是[getString]读取String类型的内容。

存储数据:

  1. //通过Activity自带的getSharedPreferences方法,得到SharedPreferences对象      
  2. //第一个参数表示保存后 xml 文件的名称(底层实现是将数据保存到xml文档中)。      
  3. //第二个参数表示xml文档的权限为私有,并且重新写的数据会覆盖掉原来的数据      
  4. SharedPreferences preferences = getSharedPreferences("user", Context.MODE_PRIVATE);            
  5. //通过preferences得到它的编辑器对象edit      
  6.  Editor edit = preferences.edit();     
  7. //通过编辑器将name属性和对应的nameText中输入的值写入到xml文档中      
  8. edit.putString("name", nameText.getText().toString());     
  9. //通过编辑器将age属性和对应的ageText中输入的值写入到xml文档中      
  10. String ageStr = ageText.getText().toString();     
  11. if(ageStr != null || "".equals(ageStr.trim()))     
  12. edit.putInt("age"new Integer(ageStr));     
  13. //添加数据完成后,提交编辑器的添加操作      
  14. edit.commit();   

获取数据:

  1. 注: 其它应用调用此参数文件:
  2. //创建需要调用的参数保存文件应用的Context
  3. //第一参数为保存文件所存在的包名
  4. //第二个参数表示 忽略安全级别
  5. //注: 这里的 this.getContext()是得到当前应用的上下文,因为本测试环境是继承 AndroidTestCase ,如果在Activity中可以直接使用createPackageContext方法
  6. Context context = this.getContext().createPackageContext("cn.android.preference"this.getContext().CONTEXT_IGNORE_SECURITY); 
  7. //通过创建的context得到preferences对象
  8. SharedPreferences preferences = context.getSharedPreferences("user", context.MODE_WORLD_READABLE);
  9. //通过对象取得文件里面的值,也可以写入,这里就不再测试了
  10. String name = preferences.getString("name""abc"); 
  11. //将得到的值方在日志中,以便看程序是否正确执行
  12. Log.e("TestSharedPreferenceParser",name);
  13. /** 需要注意的是:此文件在被其它应用读取的时候,其权限必须包含 context.MODE_WORLD_READABLE,否则无法找到  */  

 

 

 

 

 

 

 

 

相关内容