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类型的内容。

存储数据:

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

获取数据:

注: 其它应用调用此参数文件:

//创建需要调用的参数保存文件应用的Context

//第一参数为保存文件所存在的包名

//第二个参数表示 忽略安全级别

//注: 这里的 this.getContext()是得到当前应用的上下文,因为本测试环境是继承 AndroidTestCase ,如果在Activity中可以直接使用createPackageContext方法

Context context = this.getContext().createPackageContext("cn.android.preference"this.getContext().CONTEXT_IGNORE_SECURITY); 

//通过创建的context得到preferences对象

SharedPreferences preferences = context.getSharedPreferences("user", context.MODE_WORLD_READABLE);

//通过对象取得文件里面的值,也可以写入,这里就不再测试了

String name = preferences.getString("name""abc"); 

//将得到的值方在日志中,以便看程序是否正确执行

Log.e("TestSharedPreferenceParser",name);

/** 需要注意的是:此文件在被其它应用读取的时候,其权限必须包含 context.MODE_WORLD_READABLE,否则无法找到  */  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwgwpp.html