首页 > 其他分享 >android应用的记住密码与快速登录

android应用的记住密码与快速登录

时间:2023-05-15 23:13:29浏览次数:54  
标签:登录 mPasswordFlag 密码 editor android Password 记住

通过资料得知,可以通过三种方式实现,其中,数据库个人认为比较好实现,添加个字段即可,但觉得不太正规,同时,还得对表结构进行修改,所以,舍弃这种方法。通过SharedPreferences实现记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等。

一:准备条件

复选框:记住密码和自动登录使用复选框来实现,并设置了全局变量接收当前记住密码以及自动登录的状态

//复选框
private CheckBox mRemenber;//记住密码
private boolean mPasswordFlag = false;//记住密码标志
private CheckBox mAutoLogin;//自动登录
private boolean mAutoLoginFlag = false;//自动登录标志

二:实现原理

通过oncreate来调用shareprefence里的数据,来判断记住密码,自动登录的字段是否为真,真则进行一个操作,假则进行一个操作。

SharedPreferences sharedPreferences = getSharedPreferences("App", MODE_PRIVATE);
//储存的地方
//取值判空
if (sharedPreferences != null) {
UserName = sharedPreferences.getString("username", "");
Password = sharedPreferences.getString("password", "");
mPasswordFlag = sharedPreferences.getBoolean("remenber", false);
mAutoLoginFlag = sharedPreferences.getBoolean("auto", false);
UserNameEdit.setText(UserName);
}
//记住密码
if (mPasswordFlag) {
mRemenber.setChecked(true);
PasswordEdit.setText(Password);
//显示
}
//自动登录
if (mAutoLoginFlag){
mAutoLogin.setChecked(true);
String username = UserNameEdit.getText().toString();
String password = PasswordEdit.getText().toString();
login(username,password);//进行操作
}
//进行修改复选框
mRemenber.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//记住密码
//如果将记住密码取消,取消记住密码、自动登录
if (!isChecked){
mAutoLogin.setChecked(false);
//清空密码输入框
PasswordEdit.setText("");
}
}
});
三:初始化,在第一登录时候进行
LoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
UserName = UserNameEdit.getText().toString();
Password = PasswordEdit.getText().toString();
//
//1 创建 SharePreferences 对象
SharedPreferences sharedPreferences = getSharedPreferences("App", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
//2 创建Editor对象,写入值
editor.putString("username", UserName);
if (mRemenber.isChecked()) {
if(!mPasswordFlag){
Password = Password;
mPasswordFlag = true;
}
editor.putBoolean("remenber", mPasswordFlag);
editor.putString("password", Password);
//选中自动登录
if (mAutoLogin.isChecked()){
mAutoLoginFlag = true;
}else{
mAutoLoginFlag = false;
}
editor.putBoolean("auto", mAutoLoginFlag);
} else {
if(!mPasswordFlag){
Password = Password;
}
//取消自动登录和记住密码,清空密码
mPasswordFlag = false;
mAutoLoginFlag = false;
editor.putString("password", "");
editor.putBoolean("remenber", mPasswordFlag);
editor.putBoolean("auto", mAutoLoginFlag);
}
//3 提交
editor.commit();
login(UserName,Password);//登录方法
}
});
四:最终界面:

 五:参考来源博客

(40条消息) Android登录记住密码以及自动登录的实现_没事瞎琢磨的程序猿的博客-CSDN博客

 

 







标签:登录,mPasswordFlag,密码,editor,android,Password,记住
From: https://www.cnblogs.com/JIANGzihao0222/p/17403410.html

相关文章

  • android应用的记住密码与快速登录
    通过资料得知,可以通过三种方式实现,其中,数据库个人认为比较好实现,添加个字段即可,但觉得不太正规,同时,还得对表结构进行修改,所以,舍弃这种方法。通过SharedPreferences实现记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存......
  • Android虚拟机的D盘储存
    大家知道安卓的模拟器位置默认是放在C盘的,这样比较占空间,可以通过创建·符号链接的方式来“欺骗”AS,从而创建到D盘:以管理员身份打开命令提示符,输入以下命令:mklink/DC:\Users\xxx\.android\avdD:\AndroidStudio\androidC\avd其中C:\Users\xxx\.android\avd是默认的安装......
  • MySQL配置免密登录及密码修改
    内容要点一、问题描述二、解决方案一、问题描述1、mysql忘记密码无法登录。报错:#mysql-uroot-pEnterpassword:ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)2、配置免密登录后修改密码失败UPDATEuserSETpassword=PASSWORD('r......
  • 记录--css水滴登录界面
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言今天我们来分享一款非常有趣的登录界面,它使用HTML和CSS制作,具有动态的水波纹效果,让用户在登录时感受到了一股清凉之感。基本html框架<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • 引用登录token方法
    注:environment :环境变量   Globals:全局变量step1:提取出 token 参数数据,设置成全局变量pm.environment.set("token", JSON.parse(responseBody).data.token) step2:点击send,获取的token会自动放到右上角的环境变量中step3:在引用的接口中带入参数:   Bearer......
  • Android App中检测USB是否插入
    一、需求在Android开发过程中,在App中实现检测USB是否插入。二、实现过程1、使用UsbManager.ACTION_USB_DEVICE_DETACHED和UsbManager.ACTION_USB_DEVICE_ATTACHED检测USB的插拔无法实现。2、使用UsbManager.ACTION_USB_STATE和UsbManager.ACTION_USB_CONNECTED1privateb......
  • android.content.res.Resources$NotFoundException: String resource ID #0x4
    问题描述:android.content.res.Resources$NotFoundException:StringresourceID#0x4翻译为:android.content.res。资源$NotFoundException:字符串资源ID#0x4。原因:类型转换错误,请查看报错的地方和传过来(或是从接口获取的类型)的类型是否一致......
  • react微信扫码登录
    第一步<scriptsrc="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js">第二步//缓存已经加载的资源回调importloadScriptOncefrom'load-script-once'//加载一次functionloadScriptOnceSync(src:string,success:any){loadScriptO......
  • android 多款按钮样式
    http://www.mindfreakerstuff.com/2012/10/50-awesome-useful-android-custom-button-style-set-2/#button-set2http://www.mindfreakerstuff.com/2012/09/50-useful-android-custom-button-style-set-1/......
  • 第139篇:微信小程序的登录流程
    好家伙,补补补 顶不住了,跑不掉了,这部分的知识还是要补上 来看看微信小程序登录的完整流程 最左边的一列就是前端负责的部分了几个关键的参数:code:一个用户登录凭证,就是一个临时的tokenAppid:appid是微信账号的唯一标识,这个是固定不变的;如果了解微信公众号开发的就需要......