SharedPreferences-自动登录


=

 package com.example.untils09;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

 private Button login;
 private EditText edit_name;
 private EditText edit_pass;
 private CheckBox check_login;
 private CheckBox check_pass;
 private Editor edit;
 private SharedPreferences sharedPreferences;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  // 获取资源id
  getId();
  sharedPreferences = getSharedPreferences("user", MODE_PRIVATE);
  edit = sharedPreferences.edit();
  // 取出记住密码的状态值为false
  boolean ischeckpass = sharedPreferences
    .getBoolean("ischeckpass", false);
  // 如果记住密码为ture,就取出账号和密码
  if (ischeckpass) {
   // 取值
   String qname = sharedPreferences.getString("cname", null);
   String qpass = sharedPreferences.getString("cpass", null);
   // 赋值
   edit_name.setText(qname);
   edit_pass.setText(qpass);
   check_pass.setChecked(true);
  }
  // 取出自动登录的状态值
  boolean ischecklogin = sharedPreferences.getBoolean("ischecklogin",
    false);
  // 如果选中自动登录就跳转
  if (ischecklogin) {
   check_login.setChecked(true);
   Intent intent = new Intent(MainActivity.this, ShowActivity.class);
   startActivity(intent);
  }
  // 选中记住密码的同时,选中自动登录
  check_pass.setOnCheckedChangeListener(new OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {
    // TODO Auto-generated method stub
    if (isChecked) {
     check_login.setChecked(true);
    }
   }
  });
  // 点击登录
  login.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
    // 获取输入内容
    String cname = edit_name.getText().toString();
    String cpass = edit_pass.getText().toString();
    if (!cname.isEmpty()) {
     // 记住密码被选中,
     if (check_pass.isChecked()) {
      // c存值
      edit.putString("cname", cname);
      edit.putString("cpass", cpass);
      edit.putBoolean("ischeckpass", true);
      // 提交
      edit.commit();
     }
     // 自动登录存值
     if (check_login.isChecked()) {
      edit.putBoolean("ischecklogin", true);
      edit.commit();
     }

     Intent intent = new Intent(MainActivity.this,
       ShowActivity.class);
     startActivity(intent);
    }else{
     Toast.makeText(MainActivity.this, "不能为空", 0).show();
    }
   }
  });
 }

 // 获取资源id
 private void getId() {
  // TODO Auto-generated method stub
  login = (Button) findViewById(R.id.login);
  edit_name = (EditText) findViewById(R.id.edit_name);
  edit_pass = (EditText) findViewById(R.id.edit_pass);
  check_login = (CheckBox) findViewById(R.id.check_login);
  check_pass = (CheckBox) findViewById(R.id.check_pass);
 }

}

猜你喜欢

转载自blog.csdn.net/niu_yue_jiao/article/details/80042477