Java 实时验证(单击按钮前)

Java 实时验证(单击按钮前),java,android,android-textwatcher,Java,Android,Android Textwatcher,在用户单击按钮之前,是否有任何方法可以实时验证EditText字段 例如,如果我有 if (password.length() < 6) { passwordwrapper.setError("Password must have at least 6 characters"); return; } 使用validateEmail方法 private static final String EMAIL_PATTERN = "^[a-zA-Z0-9#_~!$&'()

在用户单击按钮之前,是否有任何方法可以实时验证
EditText
字段

例如,如果我有

if (password.length() < 6) {
    passwordwrapper.setError("Password must have at least 6 characters");
    return;
}
使用
validateEmail
方法

private static final String EMAIL_PATTERN = "^[a-zA-Z0-9#_~!$&'()*+,;=:.\"(),:;<>@\\[\\]\\\\]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*$";
private Pattern pattern = Pattern.compile(EMAIL_PATTERN);
private Matcher matcher;

public boolean validateEmail(String email) {
    matcher = pattern.matcher(email);
    return matcher.matches();
}
private static final String EMAIL_PATTERN=“^[a-zA-Z0-9#u~!$&'()*+,;=:.\”(),:;@\\[\]\\\\\]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*$”;
私有模式=Pattern.compile(电子邮件模式);
私人匹配器匹配器;
公共布尔validateEmail(字符串电子邮件){
matcher=pattern.matcher(电子邮件);
返回matcher.matches();
}
我如何设置一个
TextWatcher
或其他东西来实时验证它?

你能试试吗

Field1 = (EditText)findViewById(R.id.field1);


Field1.addTextChangedListener(new TextWatcher() {

   public void afterTextChanged(Editable s) {}

   public void beforeTextChanged(CharSequence s, int start,
     int count, int after) {
   }

   public void onTextChanged(CharSequence s, int start,
     int before, int count) {

   }
  });
当类型的对象附加到可编辑对象时使用,文本更改时将调用其方法。以下是最简单的设置方法:

验证电子邮件

    private boolean validateEmail() {
    String email = inputEmail.getText().toString().trim();

    if (email.isEmpty() || !isValidEmail(email)) {
        inputLayoutEmail.setError(getString(R.string.err_msg_email));
        requestFocus(inputEmail);
        return false;
    } else {
        inputLayoutEmail.setErrorEnabled(false);
    }

    return true;
}
检查电子邮件是否有效

 private static boolean isValidEmail(String email) {
        return !TextUtils.isEmpty(email) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
     }
落实,

我希望这对你有帮助

    private boolean validateEmail() {
    String email = inputEmail.getText().toString().trim();

    if (email.isEmpty() || !isValidEmail(email)) {
        inputLayoutEmail.setError(getString(R.string.err_msg_email));
        requestFocus(inputEmail);
        return false;
    } else {
        inputLayoutEmail.setErrorEnabled(false);
    }

    return true;
}
 private static boolean isValidEmail(String email) {
        return !TextUtils.isEmpty(email) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
     }
private class MyTextWatcher implements TextWatcher {

    private View view;

    private MyTextWatcher(View view) {
        this.view = view;
    }

    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    }

    public void afterTextChanged(Editable editable) {
        switch (view.getId()) {
            case R.id.input_name:
                validateName();
                break;
            case R.id.input_email:
                validateEmail();
                break;
            case R.id.input_password:
                validatePassword();
                break;
        }
    }
}