Android : 登录并保存密码
Android 实现简易登录并保存密码。
记住密码以及自动登录的实现主要依赖于 SharedPreferences 类的使用,SharedPreferences 是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等。
使用工具
- android studio (ver. 3.5.1)
- android(sdk 29)
- java(ver.1.8.0)
- gradle(ver. 5.4.1)
功能实现
记住密码和自动登录使用 CheckBox 来实现,并设置了全局变量接收当前记住密码以及自动登录的状态。
private EditText etName;
private EditText etPass;
private CheckBox cbIsRememberPass;
private SharedPreferences sharedPreferences;
使用 SharedPreferences 时在页面初始化的时候实例,也就是在 onCreate() 中实现,在实例该类时会在本地创建一个文件,需要给该文件命名。下面是初始化页面时从已存在的文件中读取信息。
sharedPreferences=getSharedPreferences("remenberpass", Context.MODE_PRIVATE);
boolean isRemenber=sharedPreferences.getBoolean("remenberpass",false);
if(isRemenber){
String name=sharedPreferences.getString("name","");
String pass=sharedPreferences.getString("pass","");
etName.setText(name);
etPass.setText(pass);
cbIsRememberPass.setChecked(true);
}
给登录按钮点击事件绑定用于验证登录。
public void login(View view){
String name=etName.getText().toString();
String pass=etPass.getText().toString();
//测试账号密码均为 123
if("123".equals(name)&&"123".equals(pass)){
SharedPreferences.Editor editor=sharedPreferences.edit();
if(cbIsRememberPass.isChecked()){
editor.putBoolean("remenberpass",true);
editor.putString("name",name);
editor.putString("pass",pass);
}else {
editor.clear();
}
editor.commit();
Intent intent=new Intent(this,login_successful.class);
startActivity(intent);
finish();
}else {
Toast.makeText(this,"账号或密码有误",Toast.LENGTH_LONG).show();
}
}