—– 学会使用SharePreferences数据存储
数据存储的方式有哪几种?
① 使用SharedPreferences存储数据
② 文件File存储数据
③ 数据库存储数据
SharePreferences存储
概念:
- SharePreferences是一种轻量级存储类;
- 以key-value形式存储,类型为任意类型;
- 存储在data/data/<包名>shared_prefs目录下;
- 保存的数据以XML存储。
步骤:
1、获得SharePreferences对象;
2、获得Editor对象;
3、通过Editor对象的putxxx函数,设置写入数据;
4、通过Editor对象的commit方法提交写入到文件中。
实例:
题目:使用SharePreferences完成记住密码功能效果。
效果图:
代码演示:
private int Rememberfrag = 0;//创建位图
private String password = "";//初始密码为空
btn监听事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username = yonghuNAME.getText().toString();
String password = psd.getText().toString();
//1.创建SharedPreferences对象
SharedPreferences sp = getSharedPreferences("spf.xml", MODE_PRIVATE);
//2.创建Editor对象,写入值
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", username);
//判断是否点击单选框记住密码
if (box.isChecked()) {
Rememberfrag = 1;
editor.putString("password", password);
editor.putInt("remember_word", Rememberfrag);
} else {
Rememberfrag = 0;
editor.putInt("remember_word", Rememberfrag);
}
//3.提交数据
editor.commit();
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
}
});
提取数据
//从sp文件(spf.xml)中取出"name","password",节点对应的值,"remember_word"对应的位置
SharedPreferences sharedPreferences = getSharedPreferences("spf.xml", MODE_PRIVATE);
//判断文件是否为空
if (sharedPreferences!= null) {
String name = sharedPreferences.getString("name", "");
password = sharedPreferences.getString("password", "");
int rememberfrag = sharedPreferences.getInt("remember_word", 0);
//赋值给yonghuNAME
yonghuNAME.setText(name);
if (rememberfrag == 1) {
psd.setText(password);
box.setChecked(true);
}
}