gpt4 book ai didi

java - 在 Android Studio 中将一个类用于多个输入字段的快捷方式

转载 作者:行者123 更新时间:2023-12-01 23:41:00 26 4
gpt4 key购买 nike

我在一个 Activity (或一页......哈哈哈)中完成了注册、登录、重置密码布局和代码。他们都有电子邮件 editText e、e1 和 e2。现在我为每个方法创建了一个方法,如下所示:

private boolean valEmail() {

String mail = e.getEditText().getText().toString().trim();
if (mail.isEmpty()) {
e.setError("Field cannot be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(mail).matches()){
e.setError("Not a valid email"); return false;
} else if (mail.length()>254) {e.setError("Email to long"); return false;}
else if (mail.length()<5) {e.setError("Email too short"); return false;}
else {
e.setError(null);
// e.setErrorEnabled(false);
return true;
}
}

private boolean valEmail1() {

String mail = e1.getEditText().getText().toString().trim();

if (mail.isEmpty()) {
e.setError("Field cannot be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(mail).matches()){
e.setError("Not a valid email"); return false;
} else if (mail.length()>254) {e.setError("Email to long"); return false;}
else if (mail.length()<5) {e.setError("Email too short"); return false;}
else {
e.setError(null);
// e.setErrorEnabled(false);
return true;
}
}

private boolean valEmail2() {

String mail = e2.getEditText().getText().toString().trim();

if (mail.isEmpty()) {
e.setError("Field cannot be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(mail).matches()){
e.setError("Not a valid email"); return false;
} else if (mail.length()>254) {e.setError("Email to long"); return false;}
else if (mail.length()<5) {e.setError("Email too short"); return false;}
else {
e.setError(null);
// e.setErrorEnabled(false);
return true;
}
}

如果您观察,每封电子邮件(e、e1 和 e2)的方法完全相同。问题是代码太多,我试图使代码尽可能少和短。我尝试创建一种方法来使用数组来处理此问题,但没有成功。请问我该如何使用一种方法来处理这些?请问有什么捷径吗?

最佳答案

对所有电子邮件验证使用一种方法

private boolean checkEmailValidation(EditText e) { 
String mail = e.getText().toString()
if (mail.isEmpty()) {
e.setError("Field cannot be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(mail).matches()){
e.setError("Not a valid email");
return false;
} else if (mail.length()>254) {
e.setError("Email to long");
return false;
}else if (mail.length()<5) {
e.setError("Email too short");
return false;
}else {
e.setError(null);
// e.setErrorEnabled(false);
return true;
}
}

现在您可以对所有电子邮件使用 checkEmailValidation() 方法。


// you can check all email like following
if(checkEmailValidation(e.getEditText()) && checkEmailValidation(e1.getEditText()) && checkEmailValidation(e2.getEditText())) {
// do whatever you want here when all email is ok
}else{
// ...
}

要在多个 Activity 中使用,您可以遵循两种方式

  1. 创建一个 BaseActivity 并在所有 activity 中扩展它。
  2. 创建一个并创建一个静态方法。

基本 Activity 示例

public abstract class BaseActivity extends AppCompatActivity {

private boolean checkEmailValidation(EditText e) {
String mail = e.getText().toString()
if (mail.isEmpty()) {
e.setError("Field cannot be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(mail).matches()){
e.setError("Not a valid email");
return false;
} else if (mail.length()>254) {
e.setError("Email to long");
return false;
}else if (mail.length()<5) {
e.setError("Email too short");
return false;
}else {
e.setError(null);
// e.setErrorEnabled(false);
return true;
}
}
}

并在子 Activity 中扩展BaseActivity,如下所示

public class ChildActivity extends BaseActivity{
// within this class you can use checkEmailValidation`
}

静态函数示例

public class YourClassName{
private static boolean checkEmailValidation(EditText e) {
String mail = e.getText().toString()
if (mail.isEmpty()) {
e.setError("Field cannot be empty");
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(mail).matches()){
e.setError("Not a valid email");
return false;
} else if (mail.length()>254) {
e.setError("Email to long");
return false;
}else if (mail.length()<5) {
e.setError("Email too short");
return false;
}else {
e.setError(null);
// e.setErrorEnabled(false);
return true;
}
}
}

现在您可以使用类名调用此方法,如下所示

public class YourActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentView());

// you can use checkEmailValidation like
YourClassName.checkEmailValidation(...)

}

}

关于java - 在 Android Studio 中将一个类用于多个输入字段的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com