EChat(简易聊天项目)六、实现记住密码和自动登录
利用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(简易聊天项目)六、实现记住密码和自动登录相关推荐
- 基于localStorge开发登录模块的记住密码与自动登录
前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...
- android 自动登录机制,Android登录记住密码以及自动登录的实现
记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...
- 业务系统实现记住密码和自动登录功能
业务系统实现记住密码和自动登录功能 公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时 ...
- Android登录记住密码以及自动登录的实现
记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...
- Winform 实现记住密码和自动登录
一般的软件都有记住密码和自动登录功能,所以今天说一种winform的记住方式. 效果: 关闭软件,再次打开时,密码已经填写好了,不需要输入. 点击登录也能校验成功,完美实现登录记住账号密码. 自动登录 ...
- Cookie实现记住密码及自动登录
最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用cookie实现此功能. 一.什么是cookie? Cookie,有时也用其复数形式Cookies.是保存在客户 ...
- Cookie实现记住密码、自动登录
前端代码 <form id="form" action="xxx" method="post"><div><i ...
- Cookie实现用户登录记住密码,实现自动登录
什么是Cookie 在java是一个类,一对键和值组成,键值都是字符串类型,每个cookie只能保存一对键和值.每个cookie只能保存最大4K的数据 案列应用 保存用户名和密码在浏览器端,Cooki ...
- Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)(转载)
SharedPreferences介绍: SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置参数,它是采用xml文件存放数据的,文件存放在" ...
最新文章
- Softmax 函数的特点和作用是什么?
- ISA2004升级到ISA2006需要注意的事项
- java基础语法的书_第一章--Java基础语法
- mysql cmd 实时监控_mysql实时监听sql语句
- nditer —— numpy.ndarray 多维数组的迭代
- java面试题学生表成绩表老师表_SQL经典学生老师成绩表面试题
- iOS 推送功能打包后获取不到deviceToken
- java如何验证手机号码_Java 手机号码正则表达式验证
- Spring实战(第5版)核心知识点总结
- 对梯度概念的直观理解
- 132 django模版文件的使用
- Typora编辑的markdown文档莫名其妙消失或未保存,两种恢复方式
- 供应链金融三大类模式
- Hadoop In Action
- java操作RabbitMQ
- 数据结构与算法常见笔试题
- 最具有催眠功能的网站
- 武汉计算机考研好的学校排名,武汉排名前十的考研学校
- MacOS Monterey 12.2.1 (21D62) OC 0.7.8 / Cl 5144 / PE 三分区原版黑苹果镜像
- 牛视源码。抖音矩阵系统,come here