TextInputLayout не показывает сообщение об ошибке после очистки
Я использую 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);
Затем я запускаю проверку и снова устанавливаю ошибку, используя тот же код, что и выше, но на этот раз применяется красная линия, но текст ошибки отсутствует.
Кто-нибудь имеет какие-либо идеи о том, почему это может происходить, или сталкивался с подобными ситуациями?
Я видел что-то подобное, о котором здесь сообщалось, но это для более старой версии библиотеки дизайна, и я не знаю, является ли это все еще проблемой в версии, которую я использую,
2 ответа
Вы просто должны сделать эти шаги:
setErrorEnabled(true);
setError("error");
для очистки:
setError(null);
setErrorEnabled(false);
Повторите первый шаг, чтобы установить новую ошибку. setError(null)
очищает сообщение об ошибке и значок, так что я думаю, что представление, чтобы показать просто исчез и setErrorEnabled(false)
сбросит его.
Вы очищаете строку сообщения об ошибке:
mInputEmail.setError(null);
mInputPassword.setError(null);
Поэтому, когда вы повторно запустите проверку, вы получите пустую строку.
Если вы хотите, чтобы сообщение об ошибке исчезло, удалите ошибочный текст из textview:
mInputEmail.setText("");
mInputPassword.setText("");