AutoCompleteTextView - как определить, какой элемент исходного списка был выбран?

Я пытаюсь использовать AutoCompleteTextView для выбора элемента из потенциально длинного списка элементов-кандидатов. Я могу нормально отобразить список и получить вызов onItemClick, когда пользователь выбирает одно из предложений автозаполнения. Проблема в том, что «позиция», указанная в onItemClick, — это позиция в раскрывающемся списке отфильтрованных элементов, а НЕ позиция в исходном списке кандидатов.

Мне нужно знать индекс выбранного элемента в исходном списке, который я дал ArrayAdapter, а НЕ позицию в раскрывающемся списке после его фильтрации.

Я попытался создать подкласс AutoCompleteTextView и переопределить onCommitCompletion, который должен давать исходный индекс списка, но он не вызывается при выборе элемента.

Я также попытался создать подкласс BaseAdapter, чтобы я мог сам генерировать представления для списка автозаполнения и setTag с объектом приложения для каждого элемента, но AutoCompleteTextView не примет подкласс BaseAdapter для setAdapter.

Я не могу поверить, что нет способа сделать это без полного переписывания AutoCompleteTextView.

Надеюсь, у кого-то есть ответ на этот вопрос!


person joecascio    schedule 30.03.2012    source источник
comment
Я знаю, что тебе здесь нужно. К сожалению, ваш вопрос не привлек внимания, так как у вас не было кода. Я задал вопрос, следите за ним. stackoverflow.com/questions/17425139/   -  person Siddharth    schedule 02.07.2013


Ответы (1)


Я не совсем уверен, как вы это сделаете, но убедитесь, что ваш адаптер правильно назначает id, а затем используйте это значение в обратном вызове.

person holmes    schedule 18.10.2012