您的位置:首页 > Web前端

SharedPrefercences存储

2016-05-16 22:50 417 查看
在上一篇文章当中,我们介绍了android中存储数据的基本方式之一,文件存储!如果对于文件存储数据还不出熟悉,可以看看这篇上一篇文章/article/9545653.html;接下来我们开始介绍另一种存储数据的方式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() {

@Override
public 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() {

@Override
public 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存储数据以及读取数据,我们都学完了,还等什么,赶紧动手操作一把!哈哈哈哈

源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: