We have the setError
method for setting an error message with a red exclamation symbol at the end of the box if validation of an EditText returns false:
I want to set a green tick symbol, just like the red exclamation at the end of the box when my validation returns true:
password.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
if (password.getText().toString().length() < 6) {
password.setError("Password should be greater than 6 characters!");
}
else {
//validation is true, so what to put here?
}
}
}
});
}
EDIT 1 Seemingly impossible, but there's more to the problem. I did this:
email.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
String mail = email.getText().toString();
if(!android.util.Patterns.EMAIL_ADDRESS.matcher(mail).matches()) {
email.setError("Please enter a valid email address");
}
else {
Log.i("yay!","Email is valid!!!");
email.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.validated, 0);
}
}
}
});
Though I can see in my logs that yay: Email is valid!!!
, I can't see the validation symbol at the end of the EditText
.
However, to my surprise when I change the if
statement to always false
, I can see both the symbol with the log statement.
Any explanations upon why could this be happening?