SharedPrefercences存储

来源:互联网 发布:好看的推理小说知乎 编辑:程序博客网 时间:2024/05/18 02:20

        在上一篇文章当中,我们介绍了android中存储数据的基本方式之一,文件存储!如果对于文件存储数据还不出熟悉,可以看看这篇上一篇文章http://blog.csdn.net/wk592526816/article/details/51387392;接下来我们开始介绍另一种存储数据的方式SharedPreferences存储

      SharedPreferences存储方式不同于文件存储,它是使用键值对的方式来进行存储的;也就是说每当我们保存一条数据的时候,需要给这个数据提供一个 相应的键,这方便我们在读取数据的时候能根据这个键把相应的值给读取出来!   

      <Button        android:id="@+id/saveButton"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="SaveButton"/>
在这里我在布局文件中写了一个Button按钮的布局,当我点击按钮的是时候,把数据进行保存,布局非常简单,没什么好解释的!

       //保存数据        saveButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {SharedPreferences sharedPreferences = getSharedPreferences("data", Context.MODE_PRIVATE);Editor editor = sharedPreferences.edit();editor.putString("name","jcak");editor.putInt("age", 22);editor.putBoolean("married", false);editor.commit();}});
这段代码中,首先我们获取了getSharedPreferences对象,此对象接收两个参数,第一个参数是指定getSharedPreferences文件的名字,如果没有此文件的话,那么便会创建一个,不过getSharedPreferences文件都是放在data/data<package name>/files目录下面的;第二个参数是指定操作模式,(MODE_PRIVATE和MODE_MULTI_PROCESS)前者是默认模式,表示只有当前应用程序才可以对程序进行读和写的操作;后者表示多个程序对SharedPreferences文件进行读写,很明显,不安全;所以在Android4.2的版本后,就被废弃不使用了,所以我们使用第一个就OK了;然后通过sharedpreferences对象的edit();方法来获取Editor对象,这样我们就可以使用这个对象来添加数据了,比如我们添加一个字符串类型的,editor.putString();布尔类型就是editor.putBoolean();以此类推,我相信大家都能理解!最后我们一定要调用,editor.commit();方法来提交数据!这样我们就完成了数据的存储操作;

既然数据已经存储好了,那么接下来我们切换到File Explorer,然后进入到/data/data/<com.wk.dyhsharedpreferencestest>/shared_prefs目录下,就可以看到有一个生成了一个data.xml的文件;如上图所示,把这个文件导出去,用记事本打开,就能看到我们存储进去的数据!如下图所示:

非常明显,SharedPreferences文件使用XML格式来进行保存数据的!来进行管理的,这个不急,后面我们会讲到如果解析XML文件格式的数据!到此为止,我们已经学会了SharedPreferences如何保存数据了!那么既然能通过SharedPreferences把数据写进一个XML文件来进行存储,那么能不能把写进去的数据读取出来呢?怎么读取出来呢?接下来就来讲解如何读取SharedPreferences文件保存的数据;

      <Button        android:id="@+id/restoreButton"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="RestoreButton"/>

在布局文件中增加一个Button,用于恢复数据用!

 //恢复数据        resButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {SharedPreferences spf = getSharedPreferences("data", Context.MODE_PRIVATE);String name = spf.getString("name", "");int age = spf.getInt("age", 21);boolean married = spf.getBoolean("married", true);Log.d(TAG, name+","+age+","+married);}});
同样在这里获取SharedPerferences对象,然后调用它的getString,getIntgetBoorean方法来获取前面我们存储的值,如果没有的话,我们就传入默认值来代替!最后我们通过Log将这些值答应出来,看看我们是不是真的获取到了!

所有前面我们存储的数据,全部取出来了,这时候你想对这些数据怎么处理就怎么处理了!好了,到这里,SharedPreferences存储数据以及读取数据,我们都学完了,还等什么,赶紧动手操作一把!哈哈哈哈


源码下载

1 0
原创粉丝点击