使用SharedPreferences对象实现记住密码功能
具体的布局代码就省了,假定:
- 一个账号输入框,ID为:username
- 一个密码输入框,ID为:password
- 一个复选框,ID为:remember
- 一个登录按钮,ID为:login
// 先实例化所有控件
Button login = findViewById(R.id.login); // 登录按钮
EditText username = findViewById(R.id.username); // 账号输入框
EditText password = findViewById(R.id.password); // 密码输入框
CheckBox remember = findViewById(R.id.remember); // 记住密码复选框
// 创建SharedPreferences对象
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = pref.edit();
// 判断记录中是否勾选了记住密码
if (pref.getBoolean("remember", false)) {
// 此时说明用户上次退出时勾选了记住密码
// 为输入框和选择框设置默认值
username.setText(pref.getString("username", "")); // 账号
password.setText(pref.getString("password", "")); // 密码
remember.setChecked(true); // 记住密码选择框
}
// 给按钮添加点击事件
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 先获取输入的账号和密码(验证省略,假定一直有值)
String uname = username.getText().toString();
String pwd = password.getText().toString();
// 判断记住密码复选框的选中状态
if (remember.isChecked()) {
// 此时需要记住密码,将账号输入存入对象中
editor.putBoolean("remember", true);
editor.putString("username", uname);
editor.putString("password", pwd);
} else {
// 此时用户取消了记住密码,清除记录
editor.clear();
}
// 最后应用保存数据,此处有两个方法:commit、apply
editor.apply();
// editor.commit();
}
});
因为只是实现基本的功能,所以代码量不是很多,写的也就比较简单,没有太多的封装,包括布局什么的也没有写,仅仅只是对具体功能的实现做了一个简单的整理和记录。如有疑问和建议欢迎在下方评论留言。