Intereting Posts
Переходы разделенных элементов переходят через панель навигации Показать spinner в AlertDialog Android: какой из них лучше, просмотрщик, галерея, горизонтальный просмотр прокрутки … или? Блокировка приложения Android телефона в режиме Портрет Android-библиотека – как собрать банку с зависимостями с помощью gradle? Почему бы не добавить mavenLocal () во все приложения Android? Создание таблиц в базе данных sqlite на android Уведомление о брандмауэре Android запускает новое приложение, хотя оно уже запущено. Как синхронизировать запуск приложения со значком приложения и уведомлением staus bar? Функция android runonuithread () не выполняется Создайте меню стиля «ok glass», в стеке Как сделать фрагмент прокручиваемым с помощью ListView Как настроить прозрачность ImageView HttpPost в Android – непризнанные символы Установите гравитацию для LinearLayout программно Android: получение количества видимых детей в списке

Как установить сообщение об ошибке для Spinner в Android?

Я хотел бы иметь возможность вызвать такой код, похожий на то, как setError установлен в TextView:

 spinner.setError("Error message"); 

Однако setError работает только для EditText, а не для Spinner.

Я хочу уведомить пользователя, если поле счетчика не выбрано. Как я могу выполнить такое уведомление без использования Toast ?

    В этом потоке есть несколько решений. Создание setError () для Spinner :

    EdmundYeung99 работает для меня, либо вы используете свой собственный адаптер, либо нет. Просто введите следующий код в свою функцию проверки:

     TextView errorText = (TextView)mySpinner.getSelectedView(); errorText.setError(""); errorText.setTextColor(Color.RED);//just to highlight that this is an error errorText.setText("my actual error text");//changes the selected item text to this 

    Но убедитесь, что у вас есть хотя бы одно значение в адаптере Spinner, когда вы выполняете проверку. Если нет, как пустой адаптер, ожидающий заполнения, сделайте, чтобы ваш адаптер получил пустую строку:

     ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, new String[]{""}); mySpinner.setAdapter(adapter); 

    Класс Spinner вернет текстовое представление, когда вы используете getSelectedView() . Таким образом, вы можете использовать setError() косвенно.

     ((TextView)spinner.getSelectedView()).setError(""); 

    Результаты должны быть как …

    SetError в spinner

    Надеюсь, это будет полезно!

    Вот решение, которое использует скрытый TextView для отображения всплывающего сообщения в дополнение к значку ошибки в счетчике. Когда в состоянии ошибки, Spinner выглядит так:

    Счетчик в недействительном состоянии

    Если не в состоянии ошибки, это выглядит так.

    Счетчик в действительном состоянии

    Полное описание документа описано здесь: https://stackoverflow.com/a/29956372/3063884