Android实现自动登录和记住密码
效果图:

在勾选自动登录后下次打开软件会直接跳过登录界面
代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_go);//即activity_login.xml
findViews();
if(sp.getBoolean("ISCHECK", false))
{
//设置默认是记录密码状态
rem_pw.setChecked(true);
etusername.setText(sp.getString("USER_NAME", ""));
//判断自动登陆多选框状态
if(sp.getBoolean("AUTO_ISCHECK", false))
{
//设置默认是自动登录状态
auto_login.setChecked(true);
//跳转界面
Intent intent = new Intent(GoActivity.this,IndexActivity.class);
GoActivity.this.startActivity(intent);
}
}
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etusername.getText().toString();
System.out.println(username);
Log.i("TAG",username);
UserService uService=new UserService(GoActivity.this);
boolean flag=uService.login(username);
if(flag){
Log.i("TAG","登录成功");
Toast.makeText(GoActivity.this, "登录成功", Toast.LENGTH_LONG).show();
if(rem_pw.isChecked())
{
//记住用户名、密码、
SharedPreferences.Editor editor = sp.edit();
editor.putString("USER_NAME", username);
editor.commit();
}
Intent intent = new Intent(GoActivity.this,ListActivity.class);//页面跳转
startActivity(intent);
}else{
Log.i("TAG","登录失败");
Toast.makeText(GoActivity.this, "登录失败", Toast.LENGTH_LONG).show();
}
}
});
register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent=new Intent(GoActivity.this,RegisterActivity.class);
startActivity(intent);
}
});
rem_pw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if (rem_pw.isChecked()) {
System.out.println("记住密码已选中");
sp.edit().putBoolean("ISCHECK", true).commit();
}else {
System.out.println("记住密码没有选中");
sp.edit().putBoolean("ISCHECK", false).commit();
}
}
});
//监听自动登录多选框事件
auto_login.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if (auto_login.isChecked()) {
System.out.println("自动登录已选中");
sp.edit().putBoolean("AUTO_ISCHECK", true).commit();
} else {
System.out.println("自动登录没有选中");
sp.edit().putBoolean("AUTO_ISCHECK", false).commit();
}
}
});
}
Android实现自动登录和记住密码的更多相关文章
- Android自动登录与记住密码
// 获取实例对象 sp = this.getSharedPreferences("userInfo", Context.MODE_WORLD_READABLE); rem_pw ...
- Android_SharedPreferences实现的自动登录和记住密码
效果: 先贴一个SharedPreferences工具类: package com.example.didida_corder.ToolClass; import android.content.Co ...
- JavaWeb学习记录总结(二十九)--Servlet\Session\Cookie\Filter实现自动登录和记住密码
一.Servlet package autologin.servlet.login; import java.io.IOException;import java.security.MessageDi ...
- PLSQL自动登录,记住用户名密码
转: PLSQL自动登录,记住用户名密码&日常使用技巧 配置启动时的登录用户名和密码 这是个有争议的功能,因为记住密码会给带来数据安全的问题. 但假如是开发用的库,密码甚至可以和用户名相同,每 ...
- js cookie介绍和实例(用于自动登录,记住用户名等)
js cookie介绍和实例(用于自动登录,记住用户名等) 一.总结 1.cookie在客户端:因为js是最初是用来在客户端和服务器端进行通信使用的,所以客户端比如js可以操作cookie正常 2.c ...
- [No00008F]PLSQL自动登录,记住用户名密码&日常使用技巧
配置启动时的登录用户名和密码 这是个有争议的功能,因为记住密码会给带来数据安全的问题. 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Develope ...
- Android实战(一)学习了多个控件实现登录及记住密码功能
首先确定一下需要的控件: 两个EditText:用于输入账号和密码 一个button:用于登录查看账号和密码是否正确 一个checkbox:用于记住密码和账户 一个Androidstudio:用于编写 ...
- Android 开发笔记___SQLite__优化记住密码功能
package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import com.example ...
- asp.net 使用一般处理程序和ajax post实现登录以及记住密码
1.登录页面login.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&qu ...
随机推荐
- Linux命令(六)之防火墙iptables的相关操作以及端口的开放
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- const变量通过指针修改问题
const的变量在特定情况下可以通过指针修改,但是在另一些情况下是不能通过指针修改. 以下是VC6下才测试. 1. 不能修改的情况 #include int const a = 10; void ma ...
- 网络安全学习阶段性总结:SQL注入|SSRF攻击|OS命令注入|身份验证漏洞|事物逻辑漏洞|目录遍历漏洞
目录 SQL注入 什么是SQL注入? 掌握SQL注入之前需要了解的知识点 SQL注入情况流程分析 有完整的回显报错(最简单的情况)--检索数据: 在HTTP报文中利用注释---危险操作 检索隐藏数据: ...
- 【Vulhub】Rsync未授权访问漏洞复现
Rsync未授权访问 Rsync简介 rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息 ...
- 当Transactional碰到锁,有个大坑,要小心。
你好呀,我是why. 前几天在某平台看到一个技术问题,很有意思啊. 涉及到的两个技术点,大家平时开发使用的也比较多,但是属于一个小细节,深挖下去,还是有点意思的. 来,先带你看一下问题是什么,同时给你 ...
- NOIP 模拟 $32\; \rm Six$
题解 二维状压. 第一维直接压选不同质因子的方案,第二位压方案. 分两种讨论,显然一种方案最多出现两次,否则就不合法了,所以一种是出现了一次的,另一种是出现了两次的,这样可以减小状态数. 实现可以用 ...
- Mysql生成UUID的SQL语句
大写的UUID: SELECT UPPER(UUID()); 小写的UUID: SELECT LOWER(UUID()); SELECT UUID(); 去掉横杠的UUID: SELECT REPLA ...
- C# 调用C++结构体
参考网址:C#调用C/C++动态库,封装各种复杂结构体._liguo9860的专栏-CSDN博客 现在公司要做一个使用C#程序调用C++的一个DLL库,解析文件的功能.所以在网上找了一些资料. ...
- ubuntu编译安装python3.6.5
去官网下载安装包放到~/software/ 下 1更新软件库 sudo apt-get update 2安装相应的开发库 sudo apt-get install zlib1g-dev libbz ...
- RibbitMQ 实战教程
# RabbitMQ 实战教程 ## 1.MQ引言 ### 1.1 什么是MQ `MQ`(Message Quene) : 翻译为 `消息队列`,通过典型的 `生产者`和`消费者`模型,生产者不断向消 ...