Неправильный объект проверил при фильтрации ListView в андроиде

У меня есть ListView с записями разнообразного выбора, где некоторые проверяются с начала с помощью

setItemChecked(position, true);

Я комбинирую это с опцией фильтрации

setTextFilterEnabled(true)

таким образом, легко найти определенную запись в списке.

Проблема - это, когда я фильтрую список положение переключателя записей в представлении списка. Возьмите, например, три записи: 'B' и 'C', где 'C' проверяется заранее (т.е. запись в положении 3 в списке). Когда я тип a 'C' на клавиатуре, только запись 'C' отображена (как предназначено). Теперь 'C' больше не проверяется, так как запись переместилась от проверенного положения 3 до положения 1 непроверенного в списке.

Это поведение приводит к некоторым не очень желанные эффекты в приложении. Существует ли способ "переместить выбор с фильтрацией", т.е. связать проверенное состояние с записью а не с ее исходным положением в списке? Или я должен найти новый подход?

Спасибо,

Linus

6
задан aspartame 21 March 2010 в 16:40
поделиться

1 ответ

Ведите список выбранных элементов, и каждый раз, когда список пополняется, проверяйте, существует ли этот id (не позиция) в списке, и устанавливайте его как выбранный.

3
ответ дан 17 December 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: