Мне потребовалось некоторое время, чтобы окунуться в Android Spinner. После нескольких неудачных попыток реализации и после прочтения многих вопросов, частично похожих на мои, но без удовлетворительных ответов, а некоторые без каких-либо ответов вообще, например. здесь и здесь, я наконец понял, что "spinner" в Android не должен быть таким же как "раскрывающийся список" из настольных приложений или выбрать в HTML. Однако то, что мое приложение (и я догадываюсь о приложениях всех других плакатов, чьи вопросы похожи) нуждается в том, что работает как раскрывающийся список, а не как spinner.
Мои две проблемы связаны с тем, что я сначала считал идиосинхронизацией OnItemSelectedListener (я видел их как отдельные вопросы на этом сайте, но не как один):
- Начальный выбор первого элемента списка запускается автоматически без взаимодействия с пользователем.
- Когда элемент, который уже был выбран, снова выбран пользователем, он игнорируется.
Теперь я понимаю, что, когда вы думаете об этом, имеет смысл это произойти на счетчике - он должен начинаться с выбранного значения по умолчанию, и вы вращаете его только для изменения этого значения, а не для "выберите" значение - документация на самом деле говорит: "Этот обратный вызов вызывается только тогда, когда вновь выбранная позиция отличается от ранее выбранной позиции". И я видел ответы, предлагающие установить флажок, чтобы игнорировать первый автоматический выбор - я думаю, я мог бы жить с этим, если нет другого пути.
Но так как я действительно хочу, это раскрывающийся список, который ведет себя как раскрывающийся список (и, как пользователи могут и должны ожидать), мне нужно что-то вроде Spinner, который ведет себя как раскрывающийся список, как комбинированный ящик. Меня не волнует какой-либо автоматический предварительный выбор (это должно произойти без запуска моего слушателя), и я хочу знать о каждом выборе, даже если он тот же, что и ранее (в конце концов, пользователь снова выбрал тот же элемент).
Итак... есть ли что-то в Android, которое может это сделать, или какое-то обходное решение, чтобы заставить Spinner вести себя как раскрывающийся список? Если на этом сайте есть такой вопрос, который я не нашел и который имеет удовлетворительный ответ, сообщите мне (в этом случае я искренне извиняюсь за повторение вопроса).