|
|
|
@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
package com.grassroots.booktracker.activity;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Intent;
|
|
|
|
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
|
|
|
|
import android.content.pm.ActivityInfo;
|
|
|
|
|
|
|
|
import android.os.Bundle;
|
|
|
|
|
|
|
|
import android.text.TextUtils;
|
|
|
|
|
|
|
|
import android.view.View;
|
|
|
|
|
|
|
|
import android.widget.Button;
|
|
|
|
|
|
|
|
import android.widget.EditText;
|
|
|
|
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
|
|
|
|
import androidx.appcompat.widget.Toolbar;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.grassroots.booktracker.R;
|
|
|
|
|
|
|
|
import com.grassroots.booktracker.utils.MD5Utils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class LoginActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
private TextView tv_register;//返回键,显示的注册
|
|
|
|
|
|
|
|
private Button btn_login;//登录按钮
|
|
|
|
|
|
|
|
private String username, password, spPsw;//获取的用户名,密码,加密密码
|
|
|
|
|
|
|
|
private EditText etUserName, etPassword;//编辑框
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
|
|
setContentView(R.layout.activity_login);
|
|
|
|
|
|
|
|
//设置此界面为竖屏
|
|
|
|
|
|
|
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取界面控件
|
|
|
|
|
|
|
|
private void init() {
|
|
|
|
|
|
|
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
|
|
|
|
|
|
|
toolbar.setNavigationIcon(R.drawable.ic_back);
|
|
|
|
|
|
|
|
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
//登录界面销毁
|
|
|
|
|
|
|
|
finish();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//从activity_login.xml中获取的
|
|
|
|
|
|
|
|
tv_register = findViewById(R.id.tv_register);
|
|
|
|
|
|
|
|
btn_login = findViewById(R.id.btn_login);
|
|
|
|
|
|
|
|
etUserName = findViewById(R.id.et_username);
|
|
|
|
|
|
|
|
etPassword = findViewById(R.id.et_password);
|
|
|
|
|
|
|
|
//立即注册控件的点击事件
|
|
|
|
|
|
|
|
tv_register.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
// 为了跳转到注册界面,并实现注册功能
|
|
|
|
|
|
|
|
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
|
|
|
|
|
|
|
|
startActivity(intent);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
//登录按钮的点击事件
|
|
|
|
|
|
|
|
btn_login.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
//开始登录,获取用户名和密码 getText().toString().trim();
|
|
|
|
|
|
|
|
username = etUserName.getText().toString().trim();
|
|
|
|
|
|
|
|
password = etPassword.getText().toString().trim();
|
|
|
|
|
|
|
|
//对当前用户输入的密码进行MD5加密再进行比对判断, MD5Utils.md5( ); psw 进行加密判断是否一致
|
|
|
|
|
|
|
|
String md5Psw = MD5Utils.md5(password);
|
|
|
|
|
|
|
|
// md5Psw ; spPsw 为 根据从SharedPreferences中用户名读取密码
|
|
|
|
|
|
|
|
// 定义方法 readPsw为了读取用户名,得到密码
|
|
|
|
|
|
|
|
spPsw = readPsw(username);
|
|
|
|
|
|
|
|
// TextUtils.isEmpty
|
|
|
|
|
|
|
|
if (TextUtils.isEmpty(username)) {
|
|
|
|
|
|
|
|
Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
} else if (TextUtils.isEmpty(password)) {
|
|
|
|
|
|
|
|
Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
// md5Psw.equals(); 判断,输入的密码加密后,是否与保存在SharedPreferences中一致
|
|
|
|
|
|
|
|
} else if (md5Psw.equals(spPsw)) {
|
|
|
|
|
|
|
|
//一致登录成功
|
|
|
|
|
|
|
|
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
//保存登录状态,在界面保存登录的用户名 定义个方法 saveLoginStatus boolean 状态 , userName 用户名;
|
|
|
|
|
|
|
|
saveLoginStatus(true, username);
|
|
|
|
|
|
|
|
//登录成功后关闭此页面进入主页
|
|
|
|
|
|
|
|
Intent data = new Intent();
|
|
|
|
|
|
|
|
//datad.putExtra( ); name , value ;
|
|
|
|
|
|
|
|
data.putExtra("isLogin", true);
|
|
|
|
|
|
|
|
//RESULT_OK为Activity系统常量,状态码为-1
|
|
|
|
|
|
|
|
// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值
|
|
|
|
|
|
|
|
setResult(RESULT_OK, data);
|
|
|
|
|
|
|
|
//销毁登录界面
|
|
|
|
|
|
|
|
LoginActivity.this.finish();
|
|
|
|
|
|
|
|
// 跳转到主界面,登录成功的状态传递到 ClassificationActivity 中
|
|
|
|
|
|
|
|
startActivity(new Intent(LoginActivity.this, NavActivity.class));
|
|
|
|
|
|
|
|
} else if ((spPsw != null && !TextUtils.isEmpty(spPsw) && !md5Psw.equals(spPsw))) {
|
|
|
|
|
|
|
|
Toast.makeText(LoginActivity.this, "输入的用户名和密码不一致", Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Toast.makeText(LoginActivity.this, "此用户名不存在", Toast.LENGTH_SHORT).show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String readPsw(String userName) {
|
|
|
|
|
|
|
|
//getSharedPreferences("loginInfo",MODE_PRIVATE);
|
|
|
|
|
|
|
|
//"loginInfo",mode_private; MODE_PRIVATE表示可以继续写入
|
|
|
|
|
|
|
|
SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
|
|
|
|
|
|
|
|
//sp.getString() userName, "";
|
|
|
|
|
|
|
|
return sp.getString(userName, "");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void saveLoginStatus(boolean status, String userName) {
|
|
|
|
|
|
|
|
//saveLoginStatus(true, userName);
|
|
|
|
|
|
|
|
//loginInfo表示文件名 SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);
|
|
|
|
|
|
|
|
SharedPreferences sp = getSharedPreferences("loginInfo", MODE_PRIVATE);
|
|
|
|
|
|
|
|
//获取编辑器
|
|
|
|
|
|
|
|
SharedPreferences.Editor editor = sp.edit();
|
|
|
|
|
|
|
|
//存入boolean类型的登录状态
|
|
|
|
|
|
|
|
editor.putBoolean("isLogin", status);
|
|
|
|
|
|
|
|
//存入登录状态时的用户名
|
|
|
|
|
|
|
|
editor.putString("loginUserName", userName);
|
|
|
|
|
|
|
|
//提交修改
|
|
|
|
|
|
|
|
editor.commit();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 注册成功的数据返回至此
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
|
|
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
|
|
|
|
|
if (data != null) {
|
|
|
|
|
|
|
|
//是获取注册界面回传过来的用户名
|
|
|
|
|
|
|
|
// getExtra().getString("***");
|
|
|
|
|
|
|
|
String userName = data.getStringExtra("userName");
|
|
|
|
|
|
|
|
if (!TextUtils.isEmpty(userName)) {
|
|
|
|
|
|
|
|
//设置用户名到 et_user_name 控件
|
|
|
|
|
|
|
|
etUserName.setText(userName);
|
|
|
|
|
|
|
|
//et_user_name控件的setSelection()方法来设置光标位置
|
|
|
|
|
|
|
|
etUserName.setSelection(userName.length());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|