利用SharedPreferences登录界面记住密码和自动登录

①修改login_layout.xml文件,增加如下代码,即添加2个勾选框

<LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><CheckBoxandroid:id="@+id/remember_pass"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp"android:text="记住密码"/>
</LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><CheckBoxandroid:id="@+id/auto_login"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp"android:text="自动登录"/>
</LinearLayout>

②修改LoginActivity中代码

...public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//将正在创建的活动添加到活动管理器里ActivityCollector.addActivity(this);//设置布局setContentView(R.layout.login_layout);pref = PreferenceManager.getDefaultSharedPreferences(this);rememberPass = (CheckBox) findViewById(R.id.remember_pass);autoLogin = (CheckBox)findViewById(R.id.auto_login);boolean isRemember = pref.getBoolean("remember_password",false);final boolean isAutologin = pref.getBoolean("auto_login",false);//得到登录按钮对象Button login = (Button)findViewById(R.id.login);Button regist = (Button)findViewById(R.id.regist);usernameEdit = (EditText)findViewById(R.id.username);passwordEdit = (EditText)findViewById(R.id.password);if (isRemember){//将账号和密码都设置到文本框中String Username = pref.getString("username","");String Password = pref.getString("password","");usernameEdit.setText(Username);passwordEdit.setText(Password);rememberPass.setChecked(true);if (isAutologin){//自动登录跳转autoLogin.setChecked(true);//跳转界面Intent intent = new Intent(LoginActivity.this,IndexActivity.class);LoginActivity.this.startActivity(intent);}}//给登录按钮设置监听器login.setOnClickListener(new View.OnClickListener(){public void onClick(View v) {//得到用户名和密码的编辑框usernameEdit = (EditText)findViewById(R.id.username);passwordEdit = (EditText)findViewById(R.id.password);//判断是否成功匹配的标志boolean flag = false;//LitePal里遍历查询所有数据的方法List<User> users = DataSupport.findAll(User.class);for (User user : users){//判断用户输入的用户名和密码是否与数据库中相同if(user.getUsername().equals(usernameEdit.getText().toString())&&user.getPassword().equals(passwordEdit.getText().toString())) {flag = true;}}if(flag){editor = pref.edit();if (rememberPass.isChecked()){//检查复选框是否被选中editor.putBoolean("remember_password",true);editor.putString("username",usernameEdit.getText().toString());editor.putString("password",passwordEdit.getText().toString());}else {editor.putBoolean("remember_password",false);//editor.clear();//用clear会删除所有Shared文件数据,不适合}editor.apply();if (autoLogin.isChecked()){editor.putBoolean("auto_login",true);}else {editor.putBoolean("auto_login",false);}editor.apply();ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this);progressDialog.setTitle("正在登陆");progressDialog.setMessage("Loading...");progressDialog.setCancelable(true);progressDialog.show();//创建Intent对象,传入源Activity和目的Activity的类对象Intent intent = new Intent(LoginActivity.this, IndexActivity.class);String USERNAME = usernameEdit.getText().toString();intent.putExtra("userName",USERNAME);//启动ActivitystartActivity(intent);}else{//登录信息错误,通过Toast显示提示信息Toast.makeText(LoginActivity.this,"用户登录信息错误" , Toast.LENGTH_SHORT).show();}}});regist.setOnClickListener(new View.OnClickListener(){public void onClick(View v){Intent intent = new Intent(LoginActivity.this,RegistActivity.class);startActivity(intent);}});
}...

效果如图

选择记住密码后,第一次登录成功,再次开启应用,密码显示

选择自动登录后,第一次登录成功,再次开启应用直接跳转到主界面

EChat(简易聊天项目)六、实现记住密码和自动登录相关推荐

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

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

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

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

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

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

  4. Android登录记住密码以及自动登录的实现

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

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

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

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

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

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

    前端代码 <form id="form" action="xxx" method="post"><div><i ...

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

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

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

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

最新文章

  1. Softmax 函数的特点和作用是什么?
  2. ISA2004升级到ISA2006需要注意的事项
  3. java基础语法的书_第一章--Java基础语法
  4. mysql cmd 实时监控_mysql实时监听sql语句
  5. nditer —— numpy.ndarray 多维数组的迭代
  6. java面试题学生表成绩表老师表_SQL经典学生老师成绩表面试题
  7. iOS 推送功能打包后获取不到deviceToken
  8. java如何验证手机号码_Java 手机号码正则表达式验证
  9. Spring实战(第5版)核心知识点总结
  10. 对梯度概念的直观理解
  11. 132 django模版文件的使用
  12. Typora编辑的markdown文档莫名其妙消失或未保存,两种恢复方式
  13. 供应链金融三大类模式
  14. Hadoop In Action
  15. java操作RabbitMQ
  16. 数据结构与算法常见笔试题
  17. 最具有催眠功能的网站
  18. 武汉计算机考研好的学校排名,武汉排名前十的考研学校
  19. MacOS Monterey 12.2.1 (21D62) OC 0.7.8 / Cl 5144 / PE 三分区原版黑苹果镜像
  20. 牛视源码。抖音矩阵系统,come here

热门文章

  1. Lib库使用学习笔记
  2. UEFI开发与调试--edk2中的基础组件
  3. Linux公社 学习连接
  4. 搭建传奇游戏,都需要准备什么东西。
  5. 【bzoj 1022】 小约翰的游戏John 【SHOI2008】
  6. 安卓Andriod使用入门(十九)【网络视频播放器】
  7. 植物大战僵尸数据修改总结
  8. Qt 开发ARM64程序
  9. 公司企业邮箱附件多大?免费企业邮箱附件有限制吗?
  10. 冰刃·笔记 | 勒索病毒的10%和90%等式