我有一个包含两个 EditText 框、一个电子邮件和一个纯文本的活动。在允许用户继续之前,我想检查邮箱是否为空,并且是否与电子邮件模式匹配。模式匹配器部分有效,但空字符串部分无效。
我在用户输入数据时进行验证,然后根据电子邮件是否正确将两个按钮设置为可点击或不可点击。但是,如果该框为空,则它允许用户在不应该按下按钮时按下该按钮。当框中有文本时,它只让用户在匹配电子邮件模式时按下按钮是正确的。
我的文字修改后的方法:
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String enteredEmail = email.getText().toString();
if (validateEmail(enteredEmail) == true) {
image1.setImageResource(R.drawable.greentick);
play.setClickable(true);
play.setFocusable(true);
existingUser.setClickable(true);
existingUser.setFocusable(true);
}
else {
System.out.println("Invalid");
image1.setImageResource(R.drawable.redcross);
play.setClickable(false);
play.setFocusable(false);
existingUser.setClickable(false);
existingUser.setFocusable(false);
}
}
还有我的 validateEmail() 方法:
public boolean validateEmail(String email) {
boolean validated = false;
if (android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches() && (! email.equals("")) ) {
validated = true;
}
else {
validated = false;
}
return validated;
}