七、记住密码自动登录

1.activity_main.xml:

<LinearLayout 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"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <CheckBox
        android:id="@+id/checkBox1"
        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="登录" />

</LinearLayout>

2.activity_two.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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".TwoActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:text="清除数据" />

</RelativeLayout>

3.在MainActivity里边写:

package com.ebw.sp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
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.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    private SharedPreferences sp;
    private EditText user;
    private EditText pass;
    private CheckBox box;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 1获取sp (文件名,文件访问权限)
        sp = getSharedPreferences("login", Context.MODE_PRIVATE);
        //7判断是否自动登录
        if (sp.getBoolean("自动登录", false)) {
            //跳转页面
            startActivity(new Intent(MainActivity.this, TwoActivity.class));
            finish();//5分 
            return;
        }
        
        // 2找控件
        user = (EditText) findViewById(R.id.editText1);
        pass = (EditText) findViewById(R.id.editText2);
        box = (CheckBox) findViewById(R.id.checkBox1);
        findViewById(R.id.button1).setOnClickListener(this);
        //8记住密码并显示账号和密码
        String userT = sp.getString("user", "");
        String passT = sp.getString("pass", "");
        //9显示
        user.setText(userT);
        pass.setText(passT);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
            // 3点击按钮获取用户名密码 //.trim()去除空格
            String userText = user.getText().toString().trim();
            String passText = pass.getText().toString().trim();
            // 4判断输入框是否有值
            if (userText.equals("") || passText.equals("")) {
                Toast.makeText(MainActivity.this, "用户名密码不能为空", 0).show();
                return;//停止执行
            }
            //5如果密码和账号不为空  就存值登录
            Editor edit = sp.edit();
            edit.putBoolean("自动登录", box.isChecked());
            edit.putString("user", userText);
            edit.putString("pass", passText);
            edit.commit();
            //6跳转页面
            startActivity(new Intent(MainActivity.this, TwoActivity.class));
            finish();//5分 
            break;

        }

    }

}
4.在TwoActivity里边写:

package com.ebw.sp;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class TwoActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        //清除数据
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                //获取登录的sp(注意要求 参数一样)
                SharedPreferences sp = getSharedPreferences("login", Context.MODE_PRIVATE); 
               //清除数据'
                sp.edit().clear().commit();
            }
        });
    }
 

}
 

猜你喜欢

转载自blog.csdn.net/qq_42436644/article/details/85107056