前面呢,我们讲了文件的存储,文件的存储方式不适合保存一些比较复杂的文本数据。因此,我们来学习一下Android的另外一种存储方式,SharedPreferences存储,它是一种数据持久化的方式,它比文件存储更加简单易用。
将数据存储到SharedPreferences中
不同于文件存储的方式,SharedPreferences是使用键值对的方式来存储数据的。也就是说在你存储一个数据的时候,你要创建一个他对应的键,这样在读取数据的时候,你就可以通过这个键把对应的数据读取出来。SharedPreferences支持不同类型的数据存储,如果你存储的是整型,那你读取出来的也是整型,你存储的是浮点型,他读取出来的也是浮点型。下面我们就来看一下SharedPreferences的具体用法。
要使用SharedPreferences存储,先要得到SharedPreferences对象。Android中提供了三种方法,这里我就不全部讲了,只挑一个方法讲。就是调用Content类中的getSharedPreferences()方法。这个方法有两个参数,第一个参数是指定的SharedPreferences文件名,如果该文件不存在,它会创建一个新的,SharedPreferences文件都是存放在/data/data/<包名>/shared_prefs/目录下。第二个参数是操作模式,主要呢有二种,MODE_PRIVATE和MODE_MULTI_PROCESS。MODE_PRIVATE和文件存储一样是默认操作模式,对文件里的内容进行覆盖,**他表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。**MODE_MULTI_PROCESS:一般用于会有多个进程对同一个SharedPreferences文件进行读写的情况。
其他的我们就在代码中进行讲解吧!
我们先对布局文件进行修改,代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/editname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="姓名"/>
<EditText
android:id="@+id/editsex"
android:layout_width="match_parent"
android:layout_height="