Android中的SharedPreferences
1.简介
SharedPreferences,Android中一种应用程序内部轻量级的存储方式,存取快且简单,数据以键值对的形式存储,键为String型,值多为基本数据类型,比如boolean,int,float,long,String等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。使用SharedPreferences保存数据,其实质是采用了xml文件存放数据。
最常用于应用程序的配置信息存储,也可用于应用程序间的数据共享。
2.使用方式
-
存数据
1 .获取SharedPreferences对象,三种方式:
调用Context对象的getSharedPreferences()方法,
SharedPreferences pre = Context.getSharedPreferences(String name,int mode);
调用Activity对象的getPreferences()方法,
SharedPreferences pre = Activity.getPreferences(int mode);
调用应用默认的preference文件,
SharedPreferences pre =
PreferenceManager.getDefaultSharedPreferences(Context)。
前两种方式的区别:
调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享。
调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用。2.获取Editor对象,即写入器,使用SharedPreferences对象的edit()方法。
3.使用写入器的putXxx()方法存储键值对。如:putString(),putInt()。
4.使用写入器的commit()方法保存键值对(相当于数据库事务中的提交commit操作)。
-
取数据
1.打开指定名称的配置文件,即获取SharedPreferences对象。
方法同上。2.使用SharedPreferences对象的getXxx()方法由键名取数据。如:getString(),getInt()。
3.代码示例:
- 存数据
SharedPreferences user=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=user.edit();
editor.putString("user_name", "Jack");
editor.putInt("user_age", 22);
editor.commit();
- 取数据
SharedPreferences user=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("user_name", "null");
int age=preferences.getInt("user_age", 0);
4.其他
方法getSharedPreferences(String name,int mode):
name:文件名。Android 已默认SharedPreferences 以xml形式保存,所以在填写name参数时,不可加“.xml”后缀,只要直接写上文件名即可。
mode:操作模式。默认的模式为0或MODE_PRIVATE。SharedPreferences共四种操作模式:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
后两种用于控制其他应用是否有权限读写该文件。创建的配置文件存放位置可以在Eclipse中查看:
DDMS — File Explorer — data/data//shared_prefs/user.xml未解决:
暂无。