①准备 |
②第一次登陆 |
③以后登陆 |
①准备
//登录成功标志
private int Success = -2;
//记住密码选择
private CheckBox rememberPass;
//声明一个SharedPreferences对象和一个Editor对象
private SharedPreferences pref;
private SharedPreferences.Editor editor;
②第一次登陆
pref = PreferenceManager.getDefaultSharedPreferences(this);
boolean isRemember = pref.getBoolean("remember_password", false);
if (isRemember)
{
String account = pref.getString("account", "");
String password = pref.getString("password", "");
et_name.setText(account);
et_pass.setText(password);
rememberPass.setChecked(true);
}
*
第一次登陆时,isRemember默认存入false,若remember_password有对应的值,则取出其对应的值传给isRemember(其好处是对应了两种情况:
第一次登陆的默认false
和
以后的登陆根据自己的选择是否记住密码
),如果isRemember为true则从pref中取出已经存入的账号和密码并显示出来(默认为空,即若pref中没有存入则显示为空),且设置CheckBox(rememberPassword)为选中状态。
接下来,根据服务端反馈的结果判断是否登录成功:
if(isSuccess != -1){
Success = 0;
tv_result.setText(null);
Toast.makeText(MainActivity.this,"登录成功!",Toast.LENGTH_LONG).show();
}else {
if(wrongYan != -1){
tv_result.setText("错误提示:验证码输入错误");
yan.setText(null);
Success = -3;
Toast.makeText(MainActivity.this,"登录失败!",Toast.LENGTH_LONG).show();
}
if(wrongPassorCount != -1){
tv_result.setText("错误提示:密码或者账号错误");
et_pass.setText(null);
Success = -3;
Toast.makeText(MainActivity.this,"登录失败!",Toast.LENGTH_LONG).show();
}
}
if (Success == 0)
{
editor = pref.edit();
if (rememberPass.isChecked())
{
String account = et_name.getText().toString();
String password = et_pass.getText().toString();
editor.putBoolean("remember_password", true);
editor.putString("account", account);
editor.putString("password", password);
}
else
{
editor.clear();
}
editor.apply();
Intent tmpIntent = new Intent(MainActivity.this,LoginedActivity.class);
tmpIntent.putExtra("userName", userName);
tmpIntent.putExtra("Cookies", responseCookie);
startActivity(tmpIntent);
finish();
}
③以后登录
聪明的你应该已经发现,以后登陆的逻辑设计可以参照
*
处的处理模式(实际也是共用的代码段)。
到这里,已经完成了对登录的记住账号密码以及反馈结果的判断。
版权声明:本文为mm1030533738原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。