Android系统提供了三种方式来实现数据持久化,即android设备在关机的情况的下,这些数据仍然不会丢失。分别为:文件存储,SharedPreference存储以及数据库存储。先说前两个吧:
SharedPreference存储
SharedPreference是使用键值对的方式来存储数据,就是当保存一条数据时,需要给数据提供一个对应的键,这样在读取数据的时候可以通过键把相应的值取出来。
将数据存储到SharedPreference
在存储数据之前,我们首先要通过Context类中的getSharedPreference()方法获得一个SharedPreference对象。
Android的源码:
public abstract SharedPreferences getSharedPreferences(String name,int mode);
此方法有两个参数,第一个是SharedProference文件的名称,如果没有,系统会自动创建;第二个是指定操作的模式,有两种操作模式,默认是:MODE_PRIVATE或者直接写0;MODE_MULTI_PROCESS:一般适用于多个进程对同一个SharedPreference文件进行读写。
存储数据的步骤:
- 调用SharedPreference对象的edit()方法来获取一个SharedPreferences.Editor对象
- 向SharedPreferences.Editor对象中添加数据;
- SharedPreferences.Editor对象调用commit()方法将数据提交,从而完成数据操作 。
从SharedPreferences中读取数据
读取数据会更加简单,直接用SharedPreferences对象的get方法对存储数据进行读取,每种put方法都应一种get方法;
get方法要接收两个参数,第一个参数是键,第二个参数是默认值,找不到相应数据时会以默认值进行返回。
eg(小例子):实现记住密码的功能
首先创建一个布局文件:layout_remember_password.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="1">
<!--android:stretchColumns="1":表示tablayout的第二列设为可扩展,如果列数没有布满整个屏幕,
则其余空间都被第二列占据,自动拉伸已填充屏幕,就像fill_parent一样。-->