Intereting Posts
Доступ к электронной почте пользователя с помощью нового Android Android SDK Как управлять шириной вкладок навигации ActionBar? Как написать метку времени создания в apk Навигационный ящик – макет ящика не может быть создан Активность просочилась в окно com.android.internal.policy.impl.PhoneWindow$DecorView@46029dd0, которое было первоначально добавлено здесь Android.graphics.drawable.ColorDrawable не может быть добавлен в файл android.support.v7.widget.RoundRectDrawableWithShadow Как определить ориентацию по умолчанию для кадров предварительного просмотра камеры? Форматировать текст для пользовательских предложений поиска, предоставляемых в курсоре от поставщика контента Как получить реальную высоту и ширину экрана? Android WebView с искаженными символами UTF-8. Чтение текстового файла с сервера на Android Как разбирать логическое значение JSON? Android: строка Json с пробелами дает исключение «Unterminited object at» Установите тему Holo в старых версиях Android? Ошибка при передаче объекта из одной операции в другую (с использованием метода Parcelable)

Как отобразить ошибку проверки для виджета spinner, аналогичного TextView.setError ()

Как отобразить ошибку проверки для виджета spinner, аналогичного TextView.setError () Я не хочу открывать новое диалоговое окно для каждой проверки проверки spinner, класс android.widget.Spinner не имеет метода setError

Solutions Collecting From Web of "Как отобразить ошибку проверки для виджета spinner, аналогичного TextView.setError ()"

Если ваш счетчик настроен по умолчанию, метод getSelectedView() в классе Spinner вернет TextView . И на этом вы можете вызвать setError(CharSequence) Вот что я сделал:

 View selectedView = spinner.getSelectedView(); if (selectedView != null && selectedView instanceof TextView) { TextView selectedTextView = (TextView) selectedView; if (!valid) { String errorString = selectedTextView.getResources().getString(mErrorStringResource); selectedTextView.setError(errorString); } else { selectedTextView.setError(null); } } 

Результат выглядит так на Android 4.4:

Spinner с ошибкой

Таким образом, вы можете использовать 'setError' в вашем getView в адаптере spinner. Конечно, если xml вашего элемента вашего счетчика имеет TextView:

 if(requeriedField && item.getValue() == 0){ img_tittle_spinner.setError(activity.getResources().getString(R.string.FieldRequired)); } 

Несколько более чистый способ сделать код Дидерика:

 static public void setSpinnerError(Spinner spinner, String error){ View selectedView = spinner.getSelectedView(); if (selectedView != null && selectedView instanceof TextView) { TextView selectedTextView = (TextView) selectedView; selectedTextView.setError(error); } } 

Просто установите error в значение null если вы хотите ее отклонить.