记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等。

本文章只针对本人毕设的登录页面中的记住密码以及自动登录做出一些简单的解释。如果需要了解登录页面实现的完整代码请点击下面链接

Android登录页面实现

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

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

使用SharedPreferences时在页面初始化的时候实例,也就是在onCreate()中实现,在实例该类时会在本地创建一个文件,需要给该文件命名。下面是初始化页面时从已存在的文件中读取信息。

SharedPreferences sharedPreferences = getSharedPreferences("busApp", MODE_PRIVATE);//如果不为空if (sharedPreferences != null) {String userName = sharedPreferences.getString("username", "");userPassword = sharedPreferences.getString("password", "");mPasswordFlag = sharedPreferences.getBoolean("remenber", false);mAutoLoginFlag = sharedPreferences.getBoolean("auto", false);mPhoneText.setText(userName);}//确定为true获取 记住密码,打钩if (mPasswordFlag) {mRemenber.setChecked(true);mPasswordText.setText(userPassword);}//选择了自动登录后直接登录if (mAutoLoginFlag){mAutoLogin.setChecked(true);String username = mPhoneText.getText().toString();String password = mPasswordText.getText().toString();login(username,password);}//注册监听mRemenber.setOnClickListener(mListener);mRemenber.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {//记住密码//如果是选中记住密码,取消记住密码、自动登录if (!isChecked){mAutoLogin.setChecked(false);//清空密码输入框mPasswordText.setText("");}}});

在登录时将登录页面的所有信息存放到存储文件中。

//1 创建 SharePreferences 对象String username = mPhoneText.getText().toString();String password = mPasswordText.getText().toString();Log.d("输入框获取的密码", "onClick: " + password);//没有记住密码时 MD5密码加密SharedPreferences sharedPreferences = getSharedPreferences("busApp", MODE_PRIVATE);SharedPreferences.Editor editor = sharedPreferences.edit();//2  创建Editor对象,写入值editor.putString("username", username);if (mRemenber.isChecked()) {if(!mPasswordFlag){try {password = MD5Utils.getMD5(password);Log.d("记住密码选中且false加密后密码", "onClick: " + password);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}mPasswordFlag = true;}editor.putBoolean("remenber", mPasswordFlag);editor.putString("password", password);Log.d("记住密码选中写入的密码", "onClick: " + password);//选中自动登录if (mAutoLogin.isChecked()){mAutoLoginFlag = true;}else{mAutoLoginFlag = false;}editor.putBoolean("auto", mAutoLoginFlag);} else {if(!mPasswordFlag){try {password = MD5Utils.getMD5(password);Log.d("记住密码未选中且false加密后密码", "onClick: " + password);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}//取消自动登录和记住密码,清空密码mPasswordFlag = false;mAutoLoginFlag = false;editor.putString("password", "");editor.putBoolean("remenber", mPasswordFlag);editor.putBoolean("auto", mAutoLoginFlag);}//3  提交editor.commit();

在执行登录之前一定要提交,commit()会将内存中的数据存储到硬盘上

Android登录记住密码以及自动登录的实现相关推荐

  1. android 自动登录机制,Android登录记住密码以及自动登录的实现

    记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...

  2. Cookie实现用户登录记住密码,实现自动登录

    什么是Cookie 在java是一个类,一对键和值组成,键值都是字符串类型,每个cookie只能保存一对键和值.每个cookie只能保存最大4K的数据 案列应用 保存用户名和密码在浏览器端,Cooki ...

  3. EChat(简易聊天项目)六、实现记住密码和自动登录

    利用SharedPreferences登录界面记住密码和自动登录 ①修改login_layout.xml文件,增加如下代码,即添加2个勾选框 <LinearLayoutandroid:orien ...

  4. 业务系统实现记住密码和自动登录功能

    业务系统实现记住密码和自动登录功能 公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时 ...

  5. 基于localStorge开发登录模块的记住密码与自动登录

    前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...

  6. Winform 实现记住密码和自动登录

    一般的软件都有记住密码和自动登录功能,所以今天说一种winform的记住方式. 效果: 关闭软件,再次打开时,密码已经填写好了,不需要输入. 点击登录也能校验成功,完美实现登录记住账号密码. 自动登录 ...

  7. Cookie实现记住密码及自动登录

    最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用cookie实现此功能. 一.什么是cookie? Cookie,有时也用其复数形式Cookies.是保存在客户 ...

  8. Android之记住密码与自动登陆实现

    本文主要讲述了利用sharedpreference实现记住密码与自动登陆功能 根据checkbox的状态存储用户名与密码 将结果保存在自定义的application中,成为全局变量 布局文件 < ...

  9. Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)(转载)

    SharedPreferences介绍: SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置参数,它是采用xml文件存放数据的,文件存放在" ...

最新文章

  1. python虚拟环境迁移及代码实现
  2. Vue计算属性和监听属性
  3. Dlib学习笔记:dlib array2d与 OpenCV Mat互转
  4. @FeignClient注解 中属性 contextId使用
  5. Pyhton随机生成测试数据模块faker
  6. datastage配置jdbc_DataStage 错误集(持续更新)
  7. 开源一周岁,MindSpore新特性巨量来袭
  8. RN position定位及Android兼容处理
  9. 欧姆龙c200he基本语言,欧姆龙C200HE-CPU42-ZE支持软件操作手册PLC手册 - 广州凌控
  10. 人工智能教程(1.1)
  11. 磁性能测量-软磁材料的退磁方法
  12. wegame显示密保服务器,wegame英雄联盟设置 | 手游网游页游攻略大全
  13. excel如何冻结首行或首列及首行首列同时冻结
  14. 狗狗有关的知识tips
  15. android别踩白块小游戏,手摸手带你实现 小游戏别踩白块儿 -- 内有游戏链接
  16. Laravel 生成QRCODE
  17. 动态创建弹框el-dialog
  18. 中国剩余定理及其代码实现
  19. 2012最新password总结,社工你懂得
  20. ACFLY开源飞控的介绍

热门文章

  1. C++虚函数表、虚函数指针(侯捷)
  2. 953 验证外星语词典
  3. PC端酷狗音乐自带的皮肤获取方式
  4. 商业分析-FAST指标解读
  5. KVM虚拟机转移到ESXI6.5
  6. 深入理解java抽象与接口
  7. ROS从入门到放弃 —— 玩一玩F1TENTH
  8. 【爬虫入门】【正则表达式】抓取白敬亭贴吧某个帖子下的图片2.0
  9. iThoughtsX for Mac(优秀的思维导图工具)v5.3
  10. 计算机控制音响阵列,HIFIDIY论坛