SharePerference 自动登录的实现

SharedPreferences 来实现自动登录的功能(简单的demo)

 原理非常简单,用户名和密码记住,然后再次登录的时候去读取。

主要的代码

MainActivity.java

private SharedPreferences sp;

......

private void initData() {   sp = this.getSharedPreferences("userinfo", Context.MODE_PRIVATE);   boolean ischeck = sp.getBoolean("ISCHECK", false);   if (ischeck) {    cbrePsd.setChecked(true);

   String name = sp.getString("USERNAME", "");    String psd = sp.getString("USERPSD", "");    etuserName.setText(name);    etuserPsd.setText(psd);    boolean autoischeck = sp.getBoolean("AUTO_ISCHECK", false);    if (autoischeck) {     cbautoLogin.setChecked(true);     Intent intent = new Intent(MainActivity.this,       LogoActivity.class);     startActivity(intent);    }   }

  /**登录**/   btnLogin.setOnClickListener(new OnClickListener() {    @Override    public void onClick(View view) {     userName = etuserName.getText().toString();     userPsd = etuserPsd.getText().toString();     if (cbrePsd.isChecked()) {      Editor editor = sp.edit();      editor.putString("USERNAME", userName);      editor.putString("USERPSD", userPsd);      editor.commit();     }     Intent intent = new Intent(MainActivity.this , LogoActivity.class);     startActivity(intent);     MainActivity.this.finish();    }   });       /**记住密码**/   cbrePsd.setOnCheckedChangeListener(new OnCheckedChangeListener() {    @Override    public void onCheckedChanged(CompoundButton arg0, boolean arg1) {     if(cbrePsd.isChecked()){      sp.edit().putBoolean("ISCHECK", true).commit();     }else{      sp.edit().putBoolean("ISCHECK", false).commit();     }    }   });     /**自动登录**/   cbautoLogin.setOnCheckedChangeListener(new OnCheckedChangeListener() {    @Override    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                if(cbautoLogin.isChecked()){                 sp.edit().putBoolean("AUTO_ISCHECK", true).commit();                }else{                 sp.edit().putBoolean("AUTO_ISCHECK", false).commit();                }    }   });  }


在LogoActivity.java中读取保存的用户名和密码

 

private SharedPreferences sp;

......

tvuserName = (TextView) findViewById(R.id.tvusername);   tvuserPsd = (TextView) findViewById(R.id.tvpsd);   sp = this.getSharedPreferences("userinfo", Context.MODE_PRIVATE);   username = sp.getString("USERNAME", "");   userpsd = sp.getString("USERPSD", "");   tvuserName.setText(username);   tvuserPsd.setText(userpsd);


 注意:这样会有一个问题,按返回键还是会回到登录的界面,因此要在登录的MainActivity.java中添加

@Override  protected void onDestroy() {   MainActivity.this.finish();   super.onDestroy();  }

 @Override  protected void onStop() {   MainActivity.this.finish();   super.onStop();  }


 完整的demo下载链接:http://download.csdn.net/detail/carol4312/6629549

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值