一、前言
数据的存储是我们在使用应用的过程中不可避免的操作,因为对于所有的应用而言我们主要的操作就是数据的读取与存储。
二、Android 中常用的数据存储方式
Android 中常用的数据存储方式有以下几种:
- SharePreferences 存储数据;
- 文件存储(内部、外部);
- 数据库存储(比如SQLite、greenDao、Room 等);
- ContentProvider 存储数据;
- 网络存储数据(将数据存储在服务器端)。
上面列出的五种存储方式里面,前面四种都属于本地数据存储方式,我们今天只讲 SharePreferences 的使用。
三、SharePreferences 概述
SharedPreferences 是一个轻量级的存储类,主要作用如下:
- 用于存放一些类似登录的配置信息(小的数据,状态信息);
- 本质上是一个 xml 文件,是通过类似键值对的方式存储信息;
- 位于程序私有目录中,即data/data/[packageName]/shared_prefs 中。
四、SharePreferences 使用
4.1、案例演示
我们要实现的案例如下所示:
这个案例具体流程就是在登录界面输入账号和密码,点击登录,如果账号和密码符合验证要求的话,我们就将账号和密码保存到 Sp 中,当下一次再进来的时候,就会在输入框中显示我们存储的信息,即账号和密码。我们平时使用的 App,大部分登陆界面都是这样做的。
4.2、利用 Sp 存储信息
一般利用 Sp 存储信息有四个步骤,分别是
- 获取 Sp 对象;
- 获取 Editor 对象;
- 存储信息;
- 提交。
具体代码如下所示:
findViewById(R.id.login_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String account = accEdt.getText().toString();
String password = pwdEdt.getText().toString();
// 验证内容,这里写死
if (account.equals("123") && password.equals("123")) {
// 1:获取 Sp 对象
SharedPreferences sp = getSharedPreferences("spConfig", Context.MODE_PRIVATE);
// 2:获取 Editor 对象
SharedPreferences.Editor editor = sp.edit();
// 3:存储信息
editor.putString("account", account);
editor.putString("password", password);
// 4:提交
editor.commit();
ToastUtil.showToast("登录成功");
} else {
ToastUtil.showToast("账号或密码错误");
}
}
});
4.3、Sp 中信息的读取
Sp 的读取很简单,直接利用 Sp 对象就可以了,具体代码如下所示:
// Sp的读取
SharedPreferences sp = getSharedPreferences("spConfig", Context.MODE_PRIVATE);
String account = sp.getString("account", "");
String password =