У меня есть счетчик, который заполнен CursorAdapter
. Теперь, создавая этот счетчик (динамически), я хочу установить для параметра по умолчанию значение, отличное от 0 (0 - первый элемент в списке CursorAdapter
)
Итак, у меня есть сеттер для этой работы, которая вызывается только после того, как объект был создан. Но по какой-то причине, независимо от того, что я передаю в этом сеттере, 0 всегда передается методу onItemSelected()
внутри Spinner OnItemSelectedListener
.
ОДНАКО, если я просто подожду, пока не произойдет первый первоначальный выбор, и снова запустите мой сеттер, все будет хорошо. Итак, чтобы сделать это более ясным, это то, что я вижу в отладчике:
- объект (spinner) создан
- прослушиватель spinner подключен
- setter запущен, число, скажем, 4 (счетчик содержит путь более чем 4 выбора) передается методу
setSelection()
- ПОДОЖДИТЕ БИТ
- СЕЙЧАС
onItemSelected()
запускается в первый раз, но позиция, данная этому методу, равна 0! - ПОДОЖДИТЕ ПОДРОБНЕЕ
- снова запускаем setter
- снова
onItemSelected()
запускается, В ЭТОМ ВРЕМЕНИ позиция, указанная как 4, как это предполагалось!
Теперь это проводное. Кажется, что невозможно установить этот счетчик до тех пор, пока не будет запущен первый начальный выбор, который всегда равен 0. Так почему это так, и что я могу сделать, чтобы установить начальный выбор?