简易登录,含记住密码,自动登录

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<EditText 
    android:id="@+id/zhang"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
   android:layout_margin="40dp"
   android:hint="请输入账号"
    />
<requestFocus />

<EditText
    android:id="@+id/mima"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/zhang"
    android:layout_centerHorizontal="true"
    android:layout_margin="40dp"
    android:ems="10"
    android:hint="请输入密码" />

<CheckBox
    android:id="@+id/jizhu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/mima"
    android:layout_below="@+id/mima"
    android:layout_marginTop="20dp"
    android:text="记住账号" />

<CheckBox
    android:id="@+id/zidong"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/jizhu"
    android:layout_alignBottom="@+id/jizhu"
    android:layout_alignRight="@+id/mima"
    android:text="自动登录" />

<Button
    android:id="@+id/button1"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/jizhu"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="48dp"
    android:text="登录" />

MainActivity:

package com.example.day_09;

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;

public class MainActivity extends Activity {
//定义变量
private EditText zhang,mima;
private CheckBox jizhu,zidong;
private Button deng;
private SharedPreferences shard;
private Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1.获取资源iD
zhang=(EditText) findViewById(R.id.zhang);
mima=(EditText) findViewById(R.id.mima);
jizhu=(CheckBox) findViewById(R.id.jizhu);
zidong=(CheckBox) findViewById(R.id.zidong);
deng=(Button) findViewById(R.id.button1);
//2.得到SharedPreferences
shard=getSharedPreferences(“uuu”, MODE_PRIVATE);
//得到editor
editor=shard.edit();
//*************
boolean ji_checked = shard.getBoolean(“ji_ischecked”, false);
if(ji_checked){
//获取到shared的值
String ji_name = shard.getString(“name”, null);
String ji_pass = shard.getString(“pass”, null);
//放入到输入框
zhang.setText(ji_name);
mima.setText(ji_pass);
//记住账号选中
jizhu.setChecked(true);
}
//**********************
boolean zi_checked = shard.getBoolean(“zi_checked”, false);
if(zi_checked){
//不需要输入框直接跳到下一个页面
Intent it=new Intent(MainActivity.this,ActionLogin.class);
startActivity(it);
finish();
}

	//当勾选了自动登录,每次启动项目,都会直接打开第二个页面
	zidong.setOnCheckedChangeListener(new OnCheckedChangeListener() {		
		@Override
		public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
			// TODO Auto-generated method stub
			if(isChecked){
				//记住账号为选中状态
				jizhu.setChecked(true);
				}else{
				//如果没选,则将shared存的数据全都清空,然后进入第一个页面,
					editor.clear();
					editor.commit();
				}
		}
	});
	
	
	
	
	//3.点击按钮
	deng.setOnClickListener(new OnClickListener() {		
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			//4.判断记住账号是否是选中状态
			/*如果选中,那么下次启动项目时,输入框有上次输入的值-->shaed保留输入的数据
			 * 会直接跳到第二个页面
			 * 如果未选中,下次启动项目时,输入框为空-->shaed没有数据
			 * 打开第一个页面
			 */
			
			if(jizhu.isChecked()){
				//获得输入框的值
				String name = zhang.getText().toString();
				String pass = mima.getText().toString();
				//将值存入到shard
				editor.putString("name", name);
				editor.putString("pass", pass);
				//存入一个勾选了的状态值
				editor.putBoolean("ji_ischecked", true);
				//提交,此时,输入的值存到shared中,再下次启动时,将值从shared中取出来放到输入框
				//且记住账号为选中状态,
				editor.commit();
				
			}else{
				editor.clear();
				editor.commit();
			}
		//判断自动登录是否选中
			if(zidong.isChecked()){
				editor.putBoolean("zi_ischecked", true);
				editor.commit();
			}
			
		//跳转
			Intent it=new Intent(MainActivity.this,ActionLogin.class);
			startActivity(it);
			finish();
		}
		
	});
	
}

}

ActivityLogin:

package com.example.day_09;

import android.app.Activity;
import android.app.Notification.Action;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/*

  • 点击注销按钮,返回到第一个页面,此时输入框没值
    */
    public class ActionLogin extends Activity{
    private Button zhu;
    private SharedPreferences shared;
    private Editor editor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_long);
    //获取资源ID
    zhu=(Button) findViewById(R.id.button1);
    shared=getSharedPreferences(“uuu”, MODE_PRIVATE);
    editor=shared.edit();
    //点击注销按钮
    zhu.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    editor.clear();
    editor.commit();
    Intent it=new Intent(ActionLogin.this,MainActivity.class);
    startActivity(it);
    finish();
    }
    });
    }

}

activity_long.xml:

<?xml version="1.0" encoding="utf-8"?>


<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“登录成功”

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="注销" />

猜你喜欢

转载自blog.csdn.net/weixin_43258668/article/details/84841948