Я использую TextInputLayout из com.android.support:design:23.3.0
Когда я впервые применяю ошибку, она отображается правильно.
mInputPassword.setError(getString(R.string.error_invalid_password)); mInputEmail.setError(getString(R.string.error_field_required));
При следующей попытке входа я очищу ошибку.
mInputEmail.setError(null); mInputPassword.setError(null);
Затем я запустил проверку и снова установил ошибку, используя тот же код, что и выше, но на этот раз красная линия применяется, но текст ошибки отсутствует.
У кого-нибудь есть идеи о том, почему это может происходить или имели подобные ситуации?
Я видел что-то подобное, описанное здесь, но оно предназначено для более старой версии библиотеки дизайна и не знает, все еще проблема в проверке, которую я использую,
Вам просто нужно сделать следующие шаги:
setErrorEnabled(true); setError("error");
Для очистки:
setError(null); setErrorEnabled(false);
Повторите первый шаг, чтобы установить новую ошибку. setError(null)
очищает сообщение об ошибке и значок, поэтому я думаю, что отображаемое представление просто исчезло, и setErrorEnabled(false)
сбросит его.
Вы очищаете строку сообщения об ошибке:
mInputEmail.setError(null); mInputPassword.setError(null);
Поэтому, когда вы перезапустите проверку, вы получите пустую строку.
Если вы хотите, чтобы сообщение об ошибке исчезло, очистите ошибочный текст из текстового поля:
mInputEmail.setText(""); mInputPassword.setText("");