Android本地数据存储之SharePreferences存储
木瓜的吃法和做法⼀、前⾔
数据的存储是我们在使⽤应⽤的过程中不可避免的操作,因为对于所有的应⽤⽽⾔我们主要的操作就是数据的读取与存储。⼆、Android 中常⽤的数据存储⽅式
Android 中常⽤的数据存储⽅式有以下⼏种:
1. SharePreferences 存储数据;
2. ⽂件存储(内部、外部);
3. 数据库存储(⽐如SQLite、greenDao、Room 等);
4. ContentProvider 存储数据;
5. ⽹络存储数据(将数据存储在服务器端)。
上⾯列出的五种存储⽅式⾥⾯,前⾯四种都属于本地数据存储⽅式,我们今天只讲 SharePreferences 的使⽤。
三、SharePreferences 概述
SharedPreferences 是⼀个轻量级的存储类,主要作⽤如下:
用什么泡脚最好⽤于存放⼀些类似登录的配置信息(⼩的数据,状态信息);
本质上是⼀个 xml ⽂件,是通过类似键值对的⽅式存储信息;
位于程序私有⽬录中,即data/data/[packageName]/shared_prefs 中。
四、SharePreferences 使⽤
4.1、案例演⽰
我们要实现的案例如下所⽰:
这个案例具体流程就是在登录界⾯输⼊账号和密码,点击登录,如果账号和密码符合验证要求的话,我们就将账号和密码保存到 Sp 中,当下⼀次再进来的时候,就会在输⼊框中显⽰我们存储的信息,即账号和密码。我们平时使⽤的 App,⼤部分登陆界⾯都是这样做的。
4.2、利⽤ Sp 存储信息
⼀般利⽤ Sp 存储信息有四个步骤,分别是属鼠人今日运势
1. 获取 Sp 对象;
2. 获取 Editor 对象;
3. 存储信息;
4. 提交。
具体代码如下所⽰:
findViewById(R.id.login_btn).tOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
String account = Text().toString();月落乌啼霜满天江枫渔火对愁眠
String password = Text().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:提交
香的四字成语
ToastUtil.showToast("登录成功");
}el{
ToastUtil.showToast("账号或密码错误");
}
}
});
4.3、Sp 中信息的读取
Sp 的读取很简单,直接利⽤ Sp 对象就可以了,具体代码如下所⽰:
/
/ Sp的读取
SharedPreferences sp =getSharedPreferences("spConfig", Context.MODE_PRIVATE); String account = sp.getString("account","");
String password = sp.getString("password","");
4.4、完整代码
完整代码如下所⽰:
public class ShareActivity extends AppCompatActivity {
private EditText accEdt, pwdEdt;
@Override
protected void onCreate(Bundle savedInstanceState){
tContentView(R.layout.activity_share);
ToastUtil.init(this);
accEdt =findViewById(R.id.acc_edt);
pwdEdt =findViewById(R.id.pwd_edt);
// Sp的读取
SharedPreferences sp =getSharedPreferences("spConfig", Context.MODE_PRIVATE);
String account = sp.getString("account","");
String password = sp.getString("password","");
accEdt.tText(account);
pwdEdt.tText(password);
// 1:获取两个输⼊框的内容
// 2:验证内容(123,123)
/
/ 2.1:验证通过,存储信息到 Sp 中
// 2.2:验证失败,给⽤户相应的提⽰
findViewById(R.id.login_btn).tOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
String account = Text().toString();
String password = Text().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:提交
列宁主义
ToastUtil.showToast("登录成功");
}el{
ToastUtil.showToast("账号或密码错误");
}
}芭蕉
});
}
}
4.5、查看 Sp 中存储的数据内容
Sp 本质上是⼀个xml,想要看⾥⾯的内容,我们需要:
1. 在 Android Studio 中打开 Device File Explorer(⼀般右下⾓就有,如果没有,就在顶部菜单按钮中依次点击 View -> Tools Windows -
> Device File Explorer);
2. 在 data/data/[包名]/shared_prefs 中查看。
3. 双击 l 查看
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<map>
<string name="password">123</string>
<string name="account">123</string>
</map>
五、SharePreferences ⼯具类
在真实项⽬中,利⽤ Sp 存储数据和读取数据是肯定不会像我们上⾯写的那样把每⼀步都写在逻辑代码中,⼀般会将其抽象成⼀个⼯具类供我们使⽤。我这⾥利⽤单例模式实现了⼀个 Sp 的⼯具类,具体代码如下所⽰: