Почему OnItemClickListener не может работать со Spinner?

Я хочу знать, есть ли конкретная причина, по которой вы не можете использовать OnItemClickListener со счетчиком в Android? Просмотр старых сообщений ( setOnItemClickListener Not Works with Spinner и У меня есть ошибка: setOnItemClickListener нельзя использовать с spinner, что не так?) кажется, что люди даже не заморачиваются с OnItemClickListener и сразу идут к OnItemSelectedListener. Почему Eclipse дает OnItemClickListener в качестве опции для счетчика, если он никогда не может работать?

Некоторый контекст. Меня не слишком беспокоит, какой метод я использую. Как только пользователь выбирает элемент из счетчика, я хочу сделать второй счетчик видимым и заполнить его из базы данных на основе параметра, выбранного в первом счетчике. Теперь, когда я использую OnItemSelectedListener, второй счетчик сразу становится видимым. Есть ли обходной путь для этого?


person Code Vader    schedule 26.04.2015    source источник
comment
Что касается вопроса о Eclipse, я не знаю; о том, что кажется проблемой программирования ваших двух счетчиков, вы можете добавить некоторые детали и некоторый код.   -  person natario    schedule 26.04.2015


Ответы (1)


Почему Eclipse предоставляет OnItemClickListener в качестве опции для счетчика, если он никогда не может работать?

Потому что все, что расширяет AdapterView, имеет setOnItemClickListener(). То, что некоторые подклассы его игнорируют, не означает, что сеттер волшебным образом исчезает.

Есть ли обходной путь для этого?

Нет обходного пути, потому что нет проблемы, потому что он делает именно то, что вы говорите, что хотите, чтобы произошло («Я хочу сделать второй счетчик видимым и заполнить его из базы данных на основе параметра, выбранного в первом счетчике» ). Spinner всегда есть выбор, если есть данные для выбора. Следовательно, ваш второй Spinner всегда должен быть виден, поскольку он "основан на параметре, выбранном в первом счетчике", и всегда будет "выбран параметр в первом счетчике".

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

person CommonsWare    schedule 26.04.2015
comment
У меня возникла проблема со Spinner с onItemClick() в списке RecyclerView здесь: stackoverflow.com/questions/46312851/ Буду признателен за любые ваши мысли или идеи. - person AJW; 20.09.2017