一、忘记密码
1.判断手机号是否是11位,不是提示输入正确手机号码,不跳转页面
//获取按钮EditText的文本内容
String phone = et_phone.getText().toString();
if (phone.length() < 11){
//弹出提示,并return,不跳转页面
Toast.makeText(this, "输入正确手机号码", Toast.LENGTH_SHORT).show();
return;
}
是十一位,因为两个界面共用一个按钮,所以要判断是否是密码登录或者验证码登录,
1、密码登录:把手机号打包跳转页面。
2、验证码登录:弹出对话框随机生成验证码。
注意register.launch(intent)需要重构一下,因为原来的函数过时了
if(v == btn_forget) {
// 检查按钮是否是“忘记密码”按钮
// 如果选择了密码方式
if(rb_password.isChecked()) {
// 创建跳转到找回密码界面的意图
Intent intent = new Intent(this, LoginForgetActivity.class);
// 将手机号添加到意图中
intent.putExtra("phone", phone);
// 启动找回密码活动
register.launch(intent);
} else if(rb_verifcode.isChecked()) {
// 如果选择了验证码方式
// 生成六位随机验证码
mverifycode = String.format("%06d", new Random().nextInt(999999));
// 创建对话框构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置对话框标题
builder.setTitle("请记住验证码");
// 设置对话框消息内容,包括手机号和验证码
builder.setMessage("手机号" + phone + ",本次验证码是" + mverifycode + ",请输入验证码");
// 设置对话框确定按钮,并设为"好的",不执行任何操作(null)
builder.setPositiveButton("好的", null);
// 创建并显示对话框
AlertDialog dialog = builder.create();
dialog.show();
}
}
重构:
// 注册活动结果监听器,当启动的活动返回结果时触发
register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
// 在这里处理启动的活动返回的结果
// 可以在这里获取返回的数据并进行相应的处理
// 如果不需要处理返回结果,此处留空即可
}
});
;
二、登录按钮
没什么逻辑就是判断是否和预设的密码或者验证码相同,提示登陆成功
1. 预设:
private String mPassword = "111111";
private String mverifycode= "111111";
2.判断是否登录成功
else if (v == btn_login) {
// 检查按钮是否是“登录”按钮
// 如果选择了密码登录方式
if(rb_password.isChecked()){
// 检查输入的密码是否与预设密码相符
if(!mPassword.equals(et_password.getText().toString())){
// 如果密码不匹配,显示提示消息并返回
Toast.makeText(this,"请输入正确密码",Toast.LENGTH_SHORT).show();
return;
}
// 登录成功
loginSuccess();
}
// 如果选择了验证码登录方式
else if (rb_verifcode.isChecked()) {
// 检查输入的验证码是否与生成的验证码相符
if(!mverifycode.equals(et_password.getText().toString())){
// 如果验证码不匹配,显示提示消息并返回
Toast.makeText(this,"请输入正确验证码",Toast.LENGTH_SHORT).show();
return;
}
// 登录成功
loginSuccess();
}
}
3.登录成功对话框:
private void loginSuccess() {
String desc = String.format("Your phonenumber is%s,congradulation passed check,click yes to back old page.",
et_phone.getText().toString());
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Logined Success!");
builder.setMessage(desc);
builder.setPositiveButton("Goback", (dialog, which) -> {
finish();
});
builder.setNegativeButton("lokk again",null);
AlertDialog dialog = builder.create();
dialog.show();
}