SharedPreference是一种比较适合少量数据的存储方式,类似于HashMap,采用的键-值得关系,使用起来非常非常的简单,并且还能够对数据的变动进行监控。
    例如,一些默认欢迎语、登录的用户名和密码等。其以键值对的方式存储,使得我们可以很方便的读取和存入,


    监控数据变动直接通过:
    preference.registerOnSharedPreferenceChangeListener(this);

    那么当你用editor.putString(key,value);将原来的key对应的value改变后,那么在
    onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)这个接口中可以对这个时间进行监控.

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

    存储数据:

  

 1 //通过Activity自带的getSharedPreferences方法,得到SharedPreferences对象   
2 //第一个参数表示保存后 xml 文件的名称(底层实现是将数据保存到xml文档中)。
3 //第二个参数表示xml文档的权限为私有,并且重新写的数据会覆盖掉原来的数据
4 SharedPreferences preferences = getSharedPreferences("user", Context.MODE_PRIVATE);
5
6 //通过preferences得到它的编辑器对象edit
7 Editor edit = preferences.edit();
8 //通过编辑器将name属性和对应的nameText中输入的值写入到xml文档中
9 edit.putString("name", nameText.getText().toString());
10 //通过编辑器将age属性和对应的ageText中输入的值写入到xml文档中
11 String ageStr = ageText.getText().toString();
12 if(ageStr != null || "".equals(ageStr.trim()))
13 edit.putInt("age", new Integer(ageStr));
14 //添加数据完成后,提交编辑器的添加操作
15 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
14 /** 需要注意的是:此文件在被其它应用读取的时候,其权限必须包含 context.MODE_WORLD_READABLE,否则无法找到 */

  

    

posted on 2011-08-04 20:14  纪嫣然妹妹  阅读(180)  评论(0)    收藏  举报