package com.example.myexamproject;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.example.myexamproject.utils.MD5Utils;
public class LoginActivity extends AppCompatActivity {
//声明所有按钮
private Button login;
private TextView tv_register;
private EditText et_username,et_pwd;
private CheckBox save_pwd;
private String userName,passWord,spPsw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
init();
}
private void init() {
//给所有按钮匹配id
et_username = (EditText) findViewById(R.id.username);
et_pwd = (EditText) findViewById(R.id.pwd);
save_pwd = (CheckBox) findViewById(R.id.save_pwd);
login = (Button)findViewById(R.id.loginBtn);
tv_register = (TextView) findViewById(R.id.register);
//获取记住的账号密码
getUserInfo();
//登录方法
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getEditString();
//对当前用户输入的密码进行MD5加密再进行比对判断。
String md5Psw= MD5Utils.md5(passWord);
// 定义方法 readPsw为了读取用户名,得到密码
spPsw = readPsw(userName);
if(TextUtils.isEmpty(userName)){
Toast.makeText( LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}else if(TextUtils.isEmpty(passWord)){
Toast.makeText( LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
// md5Psw.equals(); 判断密码是否与注册的一致
}else if(md5Psw.equals(spPsw)){
//一致登录成功
Toast.makeText( LoginActivity.this, "welcome!"+ userName, Toast.LENGTH_SHORT).show();
//保存登录状态,在界面保存登录的用户名和密码
saveLoginInfo(userName,passWord);
saveLoginStatus(true, userName);
//登录成功后关闭此页面进入主页
Intent data = new Intent();
data.putExtra("isLogin",true);
setResult(RESULT_OK,data);
//关闭登录界面
LoginActivity.this.finish();
//跳转到下一个界面
startActivity(new Intent( LoginActivity.this, MainActivity.class));
return;
//如果用户名或者账号错误会提示错误
}else if((spPsw!=null&&!TextUtils.isEmpty(spPsw)&&!md5Psw.equals(spPsw))){
Toast.makeText( LoginActivity.this, "密码错误", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText( LoginActivity.this, "此用户名不存在", Toast.LENGTH_SHORT).show();
}
}
});
tv_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到注册界面
Intent intent=new Intent( LoginActivity.this,RegisterActivity.class);
startActivity(intent);
LoginActivity.this.finish();
}
});
}
//获取用户名和密码
private void getEditString(){
userName = et_username.getText().toString().trim();
passWord = et_pwd.getText().toString().trim();
}
//保存登录信息
public void saveLoginInfo(String userName, String passWord){
//获取SharedPreferences对象
boolean CheckBoxLogin = save_pwd.isChecked();
SharedPreferences sp = getSharedPreferences("userInfo", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
//设置参数
if (CheckBoxLogin){
editor.putString("username", userName);
editor.putString("password", passWord);
editor.putBoolean("checkboxBoolean",true);
editor.commit();
}else {
editor.putString("username", null);
editor.putString("password", null);
editor.putBoolean("checkboxBoolean", false);
editor.commit();
}
}
//从已经存入的对象中读取密码
private String readPsw(String userName){
SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
return sp.getString(userName , "");
}
//保存登录状态
private void saveLoginStatus(boolean status,String userName){
SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putBoolean("isLogin", status);
editor.putString("loginUserName", userName);
editor.commit();
}
//返回注册成功数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(data!=null){
String userName=data.getStringExtra("userName");
if(!TextUtils.isEmpty(userName)){
et_username.setText(userName);
et_username.setSelection(userName.length());
}
}
}
//获得用户已注册的信息
public void getUserInfo(){
SharedPreferences sp = null;
sp = this.getSharedPreferences("userInfo", Context.MODE_PRIVATE);
if (sp.getBoolean("checkboxBoolean", false))
{
et_username.setText(sp.getString("username", null));
et_pwd.setText(sp.getString("password", null));
save_pwd.setChecked(true);
}else{
et_username.setText(sp.getString("username", userName));
et_pwd.setText(sp.getString("password", passWord));
save_pwd.setChecked(false);
}
}
public void onBackPressed() {
LoginActivity.this.finish();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
安卓大作业-java语言的开黑盒子源码(优秀期末大作业)专为大学期间课程设计和期末大作业开发的高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,项目代码完整下载即可运行。 安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作业安卓大作业-java语言的开黑盒子源码(优秀期末大作
资源推荐
资源详情
资源评论
收起资源包目录
安卓大作业-java语言的开黑盒子源码(优秀期末大作业) (102个子文件)
gradlew.bat 3KB
.gitignore 225B
.gitignore 47B
.gitignore 6B
build.gradle 1KB
settings.gradle 330B
build.gradle 291B
gradlew 6KB
gradle-wrapper.jar 58KB
LoginActivity.java 6KB
UpdateIFActivity.java 4KB
RegisterActivity.java 4KB
MySQLiteOpenHelper.java 4KB
StudentDbHelper.java 3KB
AddGamesActivity.java 3KB
MyIFActivity.java 3KB
UpdateGamesActivity.java 3KB
MainActivity.java 3KB
DeleteGamesActivity.java 2KB
PersonalCenterActivity.java 2KB
BackActivity.java 1KB
QueryGamesActivity.java 1KB
MyDBHelper.java 1KB
Student.java 1KB
MD5Utils.java 1KB
WelcomeActivity.java 875B
ExampleInstrumentedTest.java 764B
ExampleUnitTest.java 386B
Game.java 173B
bg.jpg 133KB
userupd.png 145KB
logo2.png 138KB
userdel.png 131KB
back.png 130KB
usercre.png 129KB
register.png 123KB
gender.png 10KB
hobby.png 9KB
name.png 8KB
qq.png 8KB
phone.png 8KB
tubiao.png 5KB
id.png 5KB
major.png 5KB
isbn.png 5KB
user.png 4KB
manager.png 3KB
key.png 3KB
password.png 2KB
isbn2.png 2KB
personal.png 2KB
add.png 1KB
function.png 760B
proguard-rules.pro 750B
gradle.properties 1KB
gradle-wrapper.properties 230B
ic_launcher_round.webp 8KB
ic_launcher_round.webp 6KB
ic_launcher_round.webp 4KB
ic_launcher.webp 4KB
ic_launcher_round.webp 3KB
ic_launcher.webp 3KB
ic_launcher.webp 2KB
ic_launcher_round.webp 2KB
ic_launcher.webp 1KB
ic_launcher.webp 982B
activity_update_ifactivity.xml 9KB
activity_my_ifactivity.xml 9KB
activity_add_games.xml 7KB
activity_delete_games.xml 6KB
activity_update_games.xml 6KB
ic_launcher_background.xml 5KB
activity_register.xml 5KB
activity_main.xml 4KB
activity_login.xml 3KB
activity_query_games.xml 3KB
activity_personal_center.xml 3KB
misc.xml 2KB
activity_back.xml 2KB
AndroidManifest.xml 2KB
ic_launcher_foreground.xml 2KB
item_list.xml 2KB
themes.xml 833B
themes.xml 833B
gradle.xml 746B
button_style.xml 645B
activity_welcome.xml 605B
shape_edit_normal.xml 533B
shape_edit_focus.xml 533B
colors.xml 378B
shape_btn_normal.xml 340B
shape_btn_pressed.xml 340B
btn_bg_selector.xml 307B
ic_launcher.xml 272B
ic_launcher_round.xml 272B
btn_selector.xml 266B
editext_selector.xml 266B
edit_text_bg.xml 247B
edit_text.xml 244B
render.experimental.xml 173B
共 102 条
- 1
- 2
资源评论
王二空间
- 粉丝: 6594
- 资源: 1997
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- CocosCreator开发视频教程含源码简易塔防开发3.61G
- 对数据集进行二分类,有数据集和源码以及模型,二分类是识别猫和不是猫的情况,可做毕业设计
- CocosCreator开发视频教程含源码多段线拖动轨迹物体2G
- Delphi 学习教程(从入门到实践)
- 基于Node.js+Vue.js Fetch API 爬虫的不要害羞纯静态图片网站源码.zip
- Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境
- java实现飞机大战的游戏
- 安捷伦的噪声系数基础应用笔记
- MISRA-C工业标准的C编程规范(中文版).pdf
- Cocos2d-x教程视频粒子系统初级应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功