Android学习-SharedPreferences接口的学习

来源:互联网 发布:js获取数组前几个元素 编辑:程序博客网 时间:2024/06/13 23:46

在android中SharedPreferences作为轻量级数据数据是非常方便的,把一个应用程序或是一个Activity的数据存放在SharedPreferences文件中,以便下次进入程序的时候读取出来,呈现给用户或者用作其他的处理。另外,SharedPreferences也可以保存控件的状态,并且为保存的状态改变而指定监听事件,在android系统设置中就大量地用了这种方式。好了,现在来简介一下SharedPreferences的用法;

首先,SharedPreferences是android.content包下的一个接口,该接口中包含了两个子接口一个是Editor,另外一个是OnSharedPreferenceChangeListener。看到名字,就知道这两个接口的含义,Editor接口主要是负责将数据从Preference文件中存储和读取的,而OnSharedPreferenceChangeListener接口是负责监听Preference文件存储状态是否改变,如果改变了可以在自己定义响应的操作。

怎样在程序中获取SharedPreferences的对象呢?从SDK上可以得知,用Context.getSharedPreferences(String,int)可以获取其对象,这里String类型代表的参数是存储文件的名字,而int型参数代表的含义是读写这个存储文件的权限。名字没什么好说的,就是一字符串。而权限的话,有以下几种:


Context.MODE_APPEND;值为32768;该模式会检查文件是否存在,存在就追加内容,不存在就创建文件,并且写入数据。

Context.MODE_PRIVATE;值为0;默认模式,私有,只能被本应用访问。

Context.MODE_WORLD_READABLE;值为1;其他应用可读。

Context.MODE_WORLD_WRITEABLE;值为 2;其他应用可写。


如果想其他应用也能访问该文件并且可以读写的话,可以指定为Context.MODE_WORLD_READABLE+ Context.MODE_WORLD_WRITEABLE的模式

第一:获取本应用的preferences文件

SharedPreferences pre =this.getSharedPreferences("FileName", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);

pre.edit().putString("Name","张三").commit();

Log.v("yourActivity","Name = " + pre.getString("Name", "nothing") );


第二:获取其他应用的preferences文件

要想获取其他程序的preferences文件,首先要获取它的上下文context对象,比如要去访问包名为dxd.android.test的apk的preferences文件,可以这样来的到它context;

Context  otherContext = createPackageContext(“dxd.android.test”,Context.CONTEXT_IGNORE_SECURITY);

只要得到了这个context,接下来的事情就跟在同一个包中一样了。