Intereting Posts
Выключение мягкой клавиатуры Как заставить приложение быть уничтоженным в фоновом режиме для тестирования Использование layout_alignBaseline и layout_alignBottom в RelativeLayout вместе TextView в виджетах Android не обновляется Как конвертировать 24-х часовой формат в формат до 12 часов? Кинжал 2, вводящий несколько экземпляров одного и того же типа объекта LocationManager: java.lang.RuntimeException: не удается создать обработчик внутри потока, который не вызвал Looper.prepare () Пример Bluetooth для Android Как настроить раскрывающийся список AutoCompleteTextView на Android Когда будет вызвано именно onServiceConnected для ограниченного обслуживания? Как правильно добавить пользовательский вид на панель инструментов? Android: Что происходит с моей деятельностью в случае входящего звонка? Как получить температуру батареи с десятичной? Html input type 'file' не работает в webview в android.there есть какой-либо способ загрузить файл с помощью webview android Вручную предварительно скомпилируйте файлы макета xml и используйте их

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

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

 spinner.setError("Error message"); 

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

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

Solutions Collecting From Web of "Как установить сообщение об ошибке для Spinner в Android?"

В этом потоке есть несколько решений. Создание 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