栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Android SP存储 记住密码、自动登录案例

Java 更新时间:发布时间: 百科书网 趣学号

关于SP存储的介绍,请点这里

做一个这样的记住密码、自动登录案例

一 步骤

1 布局
2 MainActivity.java
    初始化页面时,判断 记住密码 和 自动登录 打钩没,存储相应数据到SP
    第2次第n次打开的时候,从SP取数据,看上次是否 勾选了记住密码和自动登录,如果勾选了,就回显数据

二 代码

1 布局



    
    
    
    
    
        
        


    
    
        

 2 MainActivity.java

package com.example.mydatastroe;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity2 extends AppCompatActivity {

    private SharedPreferences sp;
    private EditText username;
    private EditText password;
    private CheckBox ck_remember;
    private CheckBox ck_autoLogin;
    private Button btn_regist;
    private Button btn_login;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        //获取sp
        sp = getSharedPreferences("qingConfig", Context.MODE_PRIVATE);
        initView();
        //第2次或第n次打开的时候,从SP获取之前保存的数据,进行画面同步
        boolean remeberPwd = sp.getBoolean("remeberPwd",false);//如果获取值是空,就会返回默认值 false
        boolean autoLogin = sp.getBoolean("autoLogin",false);//如果获取值是空,就会返回默认值 false

        //上次选择记住密码了
        if(remeberPwd){
            //回显数据
            username.setText(sp.getString("name",""));
            password.setText(sp.getString("pwd",""));
            ck_remember.setChecked(true); //记住密码 打上勾
        }

        //上次选择 自动登录了
        if(autoLogin){
            ck_autoLogin.setChecked(true); //自动登录 打上勾
            //模拟登录
            Toast.makeText(this,"自动登录成功了",Toast.LENGTH_SHORT).show();
        }


    }

    //初始化
    private void initView() {
        //找到控件
        username = findViewById(R.id.username);
        password = findViewById(R.id.password);
        ck_remember = findViewById(R.id.ck_remember);
        ck_autoLogin = findViewById(R.id.ck_autoLogin);
        btn_regist = findViewById(R.id.btn_regist);
        btn_login = findViewById(R.id.btn_login);

        //设置监听
        MyOnClickListener l =new MyOnClickListener();
        btn_regist.setOnClickListener(l);
        btn_login.setOnClickListener(l);

    }

    private class MyOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btn_regist:
                    break;
                case R.id.btn_login:
                    //登录
                    String name =username.getText().toString().trim();
                    String pwd =password.getText().toString().trim();
                    if(TextUtils.isEmpty(name)||TextUtils.isEmpty(pwd)){
                        Toast.makeText(MainActivity2.this,"用户名或密码不能为空",Toast.LENGTH_SHORT).show();
                    }else{
                        //记住密码打钩没
                        if(ck_remember.isChecked()){
                            //用户名和密码都要保存,同时 记住密码的状态也要保存
                            SharedPreferences.Editor editor = sp.edit();
                            editor.putString("name",name);
                            editor.putString("pwd",pwd);
                            editor.putBoolean("remeberPwd",true); //记住密码的状态 保存
                            editor.apply();

                        }

                        //自动登录打钩没
                        if(ck_autoLogin.isChecked()){
                            SharedPreferences.Editor editor = sp.edit();
                            editor.putBoolean("autoLogin",true); //自动登录的状态 保存
                            editor.apply();
                        }
                    }
                    break;

            }

        }
    }

}

效果

 

 

 把应用关掉

再次打开应用

 

 

 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/956648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号