Android: EditText setError скрывает стандартные кнопки AlertDialog - PullRequest
2 голосов
/ 08 сентября 2011

У меня есть стандарт (не пользовательский, без макета) AlertDialog с буквально EditText в качестве вида и двумя кнопками (ОК и отмена.)

Когда есть проблема с вводом, я показываю сообщение об ошибке, которое заканчивается тремя строками текста, которые закрывают кнопки ОК и Отмена. Текст ошибки исчезает, когда пользователь что-то вводит, но я бы хотел, чтобы кнопка отмены была видимой.

Есть ли (легкий) способ изменить расположение текста ошибки?

1 Ответ

3 голосов
/ 08 сентября 2011

К сожалению, не без некоторых настроек. Внутренний PopupWindow, управляемый для отображения ошибки, вызывается с помощью showAsDropDown(), что позволяет Android решить, где отображать представление относительно своего якоря (в данном случае значка ошибки), и оно всегда будет ниже представления, если только недостаточно места в окне. Вам придется создать (хотя и довольно простой) подкласс EditText, который отображает внутренний PopupWindow, используя вместо этого showAtLocation().

Вот ссылка на источник TextView , который, надеюсь, поможет вам, если вы захотите попробовать это. Методы setError() и showError() - это то, что вы бы сделали после переопределения.

НТН

...