为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2023-09-27 15:14:15
我已经在一项活动(或一页......哈哈哈)中完成了注册、登录、重置密码布局和代码。他们都有电子邮件 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)的方法完全相同。问题是代码太多,我试图使代码尽可能少和短。我尝试创建一种方法来使用数组来处理此问题,但没有成功。请问我该如何使用一种方法来处理这些?请问有什么捷径吗?
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

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


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{

  // ...

}

要多次使用,activities您可以遵循两种方式

  1. 创建一个BaseActivity并将其扩展为 all activity

  2. 创建一个class并创建一个static方法。

基本活动示例

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;

    }

  }

}

BaseActivity并在子项中扩展activities如下


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;

      }

   }

}

现在您可以method使用class name如下方式调用它


public class YourActivity extends AppCompatActivity{

  @Override

  protected void onCreate(@Nullable Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(getContentView());


    // you can use checkEmailValidation like 

    YourClassName.checkEmailValidation(...)


  }


}



查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 48 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信