1.简介:Preference是一个轻量级的数据存储方法。只能存基本的数据类型和字符串并采用键值对的方式。比较适合一条数据只有一个值。如果像一条数据有多个值还是推荐数据库。
存储数据会生成xml文件保存在/data/data/<packagename>/shared_prefs路径下。
2.获取Preference对象:
主要通过Context.getSharedPreferences(String name,int mode)方法获得。
SharedPreferences pre = getSharedPreferences("my_share",Context.MODE_PRIVATE);
其中,name是文件名称,不需要添加xml后缀,系统会自动添加。
mode主要有如下几种模式:
MODE_PRIVATE:私有;
MODE_APPEND:如果文件已经存在,就写在文件里,而不覆盖它,经Demo验证,无论写与不写,如果新建一个已存在的preference,都不会覆盖,而只是在已存在文件里添加。
MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE:对外部应用可读和可写。Android已经不推荐这种mode,更推荐使用ContentProvider。
3.存数据:
存数据数是通过SharedPreferences的一个内部接口SharedPreferences.Editor来实现的。这个接口还可以对数据进行删除和清除操作。
代码:
Editor editor=pre.edit();
editor.putString("data","Preference");
editor.putInt("aaa", i);
editor.commit();
注意:①先获得editor对象。②数据用键值对存储。
③最后切记调用commit()方法。
4.取数据:
通过SharedPreferences类对象pre的getInt(key) getString(key) getFloat(key)获得。
注意:在getString(key)或remove(key)时,若是不存在那个key,不会报错,只是该方法不起作用。
5.SharedPreferences.Editor说明
不但可以保存数据,还可以对数据删除和清除
clear():清除所有值
remove(String key):删除该键对应的值。
清除或删除操作,最后都需要调用commit()方法。
对整个xml文件删除:
File file= new File("/data/data/"+getPackageName().toString()+"/shared_prefs","文件名.xml");
if(file.exists()){
file.delete();
}