2つのEditTextボックス、1つの電子メールと1つのプレーンテキストがあるアクティビティがあります。ユーザーが先に進む前に、メールボックスが空ではなく、メールパターンと一致していることを確認したいと思います。パターンマッチャー部分は機能しますが、空の文字列部分は機能しません。
ユーザーがデータを入力するときに検証し、メールが正しいかどうかに応じて2つのボタンをクリック可能かどうかを設定します。ただし、ボックスが空の場合、ユーザーはボタンを押すべきではないときにボタンを押すことができます。ボックスにテキストがある場合、電子メールパターンが一致したときにのみユーザーにボタンを押させるという正しいことを行います。
私のアフターテキストはメソッドを変更しました:
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;
}