sharedPreferences 是android提供的一个轻量级得存储类,我是在想保存一些比较简短字段信息时找到的这么一个比较好用的工具。在刚开始时我考虑保存在资源文件当中,只需要使用getResource()去取就行了,但是这样一个坏处就是当我在程序中想要修改某一个字段或者是某些字段时就不好办了,android对于资源文件时不允许修改的,你也知道一个人是不允许把自己的五脏六腑去重新安排一次的。这样你要不就使用SQLite去存储自己的信息,这样涉及到了数据库建表,增删改查等等一系列繁琐的操作。要不就使用一个xml读写解析去自己创建一个xml文件去写出相应的操作函数,做法依然繁琐。而SharedPreferences类,它是一个轻量级的存储类,特别适合用于进行这样一些处理。
使用SharedPreferences保存数据也是一个xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下,而这个目录的创建也不需要你去做,文件名你可以自己指定,在执行操作时,加入数据文件不存在,系统自动创建数据文件,而文件名将会是你需要的那个数据文件名。
废话少说了,直接给上代码解决:
SharedPreferences sharedPreferences = getSharedPreferences("lqst", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "龙潜深潭");
editor.putInt("age", 4);
editor.commit();//提交修改
生成的lqst.xml文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">龙潜深潭</string>
<int name="age" value="4" />
</map>
因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。
方法的第二个参数指定文件的操作模式,共有四种操作模式:
。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
-----------------------------------------------------------------------
访问SharedPreferences中的数据代码如下:
SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);
//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);
这样就把数据存到文件中,也可以读出来了。像这种轻量级的东西很好用,也好理解,别整太多想什么DOM,SAX等等去解析xml文件。
这里我会给大家一个我写的小例子很简单~
http://www.ibm.com/developerworks/cn/xml/x-androidstorage/index.html?ca=drs-这篇文章大家可以看看 不错