@geronix

Как из Spinner удалить элемент?

Здравствуйте!
Использую MaterialSpinner и ArrayAdapter. В spinner-е нет hint-а по этому в адаптар первым элементом добавляется пустая строка, чтоб на экране были видны пустые спинеры. После выбора элемента(не пустой строки) пустая строка удаляется. Проблема в том, что при первом выборе элемента из спинера, следующий за ним элемент не выбирается и onItemSelected не срабатывает, выбрать можно только через один элемента. Подозреваю, что это из за удаление элемента.
Попробовал несколько вариантов из них два самые оптимальные.
1(первая попытка) не работает.
list.remove(StringUtil.EMPTY_STRING);
adapterCategory.notifyDataSetChanged();


1(вторая попытка) - Пересоздавал адаптер, в методе onItemSelected.
list.remove(StringUtil.EMPTY_STRING);
adapterCategory = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, list);
adapterCategory.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCategory.setAdapter(adapterCategory);
spinnerCategory.setSelection(position - 1);

Во втором случаи все срабатывает, следующий элемент выбирается.
Только при выборе следующего элемента на доли секунды показывается самый первый элемент в спинере.
Коллеги подскажите пожалуйста правильное решение?
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ferosod
1. Сделайте свой адаптер, отнаследовав его от ArrayAdapter.
2. В public View getDropDownView() проверяйте, если position >= getCount(), возвращайте пустой View.
3. После spinnerCategory.setAdapter(adapterCategory); вызовите spinnerCategory.setSelection(adapterCategory.getCount())

В этом случае, сразу после назначения адаптера появится пустой спиннер, но как только на него первый раз кликнут, пустая строка исчезнет из вариантов выбора. Можно туда записать не пустую строку, а например, подсказку типа "Выберите характеристику".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы