記住密碼和自動登錄
利用SharedPreferences可以實現記住密碼和自動登錄的功能。
在onCreate方法中添加以下代碼:
//記住密碼和自動登錄 rememberPwd.setChecked(false); autoLogin.setChecked(false); sp = getSharedPreferences("BookFloating_SharedPrefreence",0); String email = sp.getString("email",null); String pwd = sp.getString("pwd",null); SharedPreferences.Editor editor = sp.edit(); //SharePreference編輯器 if (!email.equals("")){ accountEdit.setText(email); } if (sp.getBoolean("remember",false)){ //如果上次設定了記住密碼 //Log.d("test_remember_Boolean","true"); rememberPwd.setChecked(true); pwdEdt.setText(pwd); } if (sp.getBoolean("autoLogin",false)){ //如果上次上次設定自動登錄 autoLogin.setChecked(true); login(email,pwd); }
在登錄前加上以下代碼:
SharedPreferences.Editor editor = sp.edit(); editor.putString("email",email); if (rememberPwd.isChecked()){ rememberPwd.setChecked(true); editor.putBoolean("remember",true); editor.putString("email",email); }else { editor.putBoolean("remember",false); editor.putString("email",email); } if (autoLogin.isChecked()){ autoLogin.setChecked(true); editor.putBoolean("autoLogin",true); editor.putString("pwd",pwd); }else{ editor.putBoolean("autoLogin",false); editor.putString("pwd",pwd); } editor.commit();
顯示密碼:
添加CheckBox,設置監聽器如下:
showPwd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ pwdEdt.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); }else { pwdEdt.setTransformationMethod(PasswordTransformationMethod.getInstance()); } } });