android实现记住密码

  • Post author:
  • Post category:其他


步骤目录
①准备
②第一次登陆
③以后登陆

①准备

     //登录成功标志
    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 版权协议,转载请附上原文出处链接和本声明。