Проверка EditText с использованием setError, исчезающего всплывающего окна и значка. (Android) - PullRequest
2 голосов
/ 20 декабря 2011

У меня есть EditText, просматриваемый TextWatcher, который проверяется с помощью Pattern, Matcher и регулярного выражения. Это работает почти нормально. Когда пользователь вводит символ в EditText, TextWatcher запускает метод onTextChanged и проверяет введенный символ. Все работает нормально, есть значок ошибки в правой части EditText и всплывающее окно с надписью «ошибка». ХОРОШО. Теперь, когда пользователь вводит второй символ, всплывающее окно и значок ошибки исчезают. Третий символ, это снова появляется. Далее оно исчезает и так далее и тому подобное .... Почему? Как сделать так, чтобы значок и всплывающее окно всегда были видны при возникновении ошибки? Код:

public EditTextValidator(EditText editText, String patternString, String errorString)
{
    this.editText = editText;
    this.errorString = errorString;
    this.patternString = patternString;

}

@Override
public void afterTextChanged(Editable s)
{

}

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

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
    Pattern pattern = Pattern.compile(patternString);
    Matcher matcher = pattern.matcher(s);

    if (!matcher.matches())
    {
        editText.setError(errorString);

    } else
    {
        editText.setError(null);

    }
}

private EditText editText;
private String errorString;
private String patternString;

}

Я использую Android 2.1 Sdk (Api 7)

1 Ответ

0 голосов
/ 21 декабря 2012

Введите ваш код в onAfterTextChanged().

...