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();
}
}