Android系统提供了几种数据存储方式:Preference(配置)、File、SQLite、ContentProvider、SD Card和网络。本文详细说下Preference。
Preference主要用于数据较少的情况下,比如登陆账号和密码,一些属性值等。它以键值对的方式将数据保存到内部的XML配置文件中,我们可以在DDMS中的File Explorer中浏览文件夹,在data/data/<package name>/shared_prefs下能看到相应的XML文件。注意,只有打开Android模拟器后才能在File Explorer中看到内容。
每个应用程序都有一个SharedPreferences对象,调用Context.getSharedPreferences(String name,int mode)方法来获取SharedPreferences对象,其中name是配置文件名,mode是操作模式(输入M之后按Alt+/,Eclipse会给出一些提示,我们可以看到有以下这些模式:
其中有一些已经被废弃,模式的含义从名字也可以才出来,主要是设置Preference的访问权限。
方法 | 描述 |
---|---|
edit() | 返回SharedPreferences内部接口SharedPreferences.Editor |
contains(String key) | 判断是否包含该键值 |
getAll() | 返回所有配置信息的Map |
getBoolean(String key,boolean defValue) | 获得一个boolean值,若找不到key,则取默认值defValue |
getFloat(String key,float defValue) | 类似getBoolean() |
getInt(String key,int defValue) | 类似getBoolean() |
getLong(String key,long defValue) | 类似getBoolean() |
getString(String key,String defValue) | 类似getBoolean() |
方法 | 描述 |
---|---|
clear() | 清除所有值 |
commit() | 保存 |
getAll() | 返回所有配置信息的Map |
putBoolean(String key,boolean value) | 保存一个boolean值 |
putFloat(String key,float value) | 保存一个float值 |
putInt(String key,int value) | 保存一个int值 |
putLong(String key,long value) | 保存一个long值 |
putString(String key,String value) | 保存一个String值 |
remove(String key) | 删除该键值对 |
下面通过代码看下SharedPreferences的读写步骤:
<span style="color:#009900;">//获取SharedPreferences对象,文件名为"myPreferences",模式为MODE_MULTI_PROCESS</span>
SharedPreferences preferences=getSharedPreferences("myPreferences", MODE_MULTI_PROCESS);
<span style="color:#009900;">//获取Editor</span>
SharedPreferences.Editor editor = preferences.edit();
<pre name="code" class="java"><span style="color:#009900;">
//保存字符串</span>
String str="This is my string";
editor.putString("myString",str);
editor.commit(); // 提交所有存入的数据
//读取字符串
String str1=preferences.getString("myString","默认值");