android学习笔记之——存储方式之SharedPreferences

SharedPreferences是一种轻型的数据存储方式,它的本质是是基于XML文件存储键值对数据,通常用来存储配置信息。其存储位置位于/data/data/包名/shared_prefs目录下面。SharedPreferences对象本身只能获取数据,而不支持存储和修改数据,存储和修改数据是通过Editor编辑器来完成的。实现SharedPreferences存储数据的步骤如下面代码:

publicclass MainActivity extends Activity {
 2     @Override
 3 publicvoid onCreate(Bundle savedInstanceState) {
 4 super.onCreate(savedInstanceState);
 5        setContentView(R.layout.main);
 6        
 7 //获取SharedPreferences对象       
 9        SharedPreferences sp = ctx.getSharedPreferences("config",Context.MODE_PRIVATE);//第一个参数config为存储数据的文件的名字
10 //存入数据
11        Editor editor = sp.edit();
12        editor.putString("username", "韩半仙");
14        editor.putString("password","hanbanxian");
15        editor.commit();
16        
17 //返回username的值
18        Log.d("hanbanxian", sp.getString("username", ""));
19 //如果password不存在,则返回值为""
20        Log.d("hanbanxian", sp.getString("password", ""));
21     }
22 }
这段 代码存储了一对用户登录信息,执行后会在/data/data/包名/shared_prefs目录下面生成config.xml文件,一个应用程序可以创建多个这样的xml文件,实质上这个xml文件也是与map集合类似的结构,config.xml文件类容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
2 <map>
3 <string name="username">韩半仙</string>
4 <string name="password">hanbanxian</string>
5 </map>
在程序用可以通过sharedPreferences对象,调用getXXX(XXX为存储的数据类型)方法,可以方便的获取对应key的value值,如果key值错误或者key无对应的value值,会被赋予一个默认值,我们的代码里面富裕的默认值为空。

SharedPreferences对象鱼SQLite数据库相比,不用去创建数据库,创建表,写SQL语句等诸多的操作,相对而言更加的方便简洁。但是SharedPreferences也有它自身的缺点,比如SharedPreferences只能存储boolean、int、float、long和string等五种简单的数据类型的数据,不能进行条件查询等,所以SharedPreferences只能是存储方式的一种补充,无法代替SQLite数据库这样的其它数据类型的存储方式。


你可能感兴趣的:(android学习笔记之——存储方式之SharedPreferences)