登录界面:activity_login.xml
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<CheckBox
android:id="@+id/remember_pass"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android="Remember password" />
</LinearLayout>
修改LoginActivity.java
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private CheckBox cbRemember;
//简单定义对象
oncreate()方法中
pref=PreferenceManager.getDefaultSharedPreferences(this);//获取SharedPreferences对象
boolean isRemember=pre.getBoolean("remember_password",false);
if(isremember){
//将账号密码复制到文本框中
String username= pref.getString ("username","");
String password = pref.getString ("password","");
accountEdit.setText(username);
rememberPass.setChecked(true);
}
//登录按钮的点击事件里面,先检测账号密码是否在数据库中,存在则保存,不存在则清除,重新输入
//if判断语句里
String account= accountEdit.getText().toString();//获取用户名
String password= passwordEdit.getText().toString();//获取密码
if(/*...账号密码是在数据库中...*/){
editor = pref.edit();
if(rememberPass.isChecked()){//检查复选框是否被选中
editor.putBoolean("remember_password",true);
editor.putString("username",account);
editor.putString("password",password);
}else{
editor.clear();}
editor.apply();
//.....
}
登陆成功之后,会调用CheckBox的isCheck()方法来检查复选框是否被选中,如若选中,则将remember_paaword设置为true,然后把账号密码对应的值写入SharePreferencees文件中并提交。若没有选中,就简单调用clear()方法,并清除掉SharePreferencees的单件中的数据。