Android поддерживает позицию выбранного элемента в ListView

У меня есть ListView элементов с флажками.

У меня есть пользовательский CursorAdapter, который проверяет флажки, если значение поля равно «1» в методе получения View.

Когда я нажимаю на элемент списка в списке, он устанавливает флажок и обновляет поле до «1». Проблема, с которой я сталкиваюсь, заключается в том, что когда я вызываю метод changecursor на своем пользовательском адаптере, он перезагружает все и указывает на первый элемент вместо элемента, на который я только что нажал.

В методе changeCursor у меня есть следующее:

    public void changeCursor(Cursor cursor) {
    super.changeCursor(cursor);
    init(cursor);
    notifyDataSetChanged();
}

Есть ли способ сохранить позицию или обходной путь для перезагрузки курсора, не заставляя его переходить к первому элементу?


person Maurice    schedule 14.11.2011    source источник


Ответы (1)


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

для получения дополнительной информации перейдите по этой ссылке Пользовательский список с проблемой флажка

список с флажком

если вы ищете пример, попробуйте этот http://appfulcrum.com/?p=281 учебник, который решает проблему с флажком в списке, используя общие настройки.

Спасибо

person bHaRaTh    schedule 14.11.2011
comment
Хорошо, у меня проблема. здесь идет надеюсь, что это имеет смысл. Когда я загружаю список с помощью getView, то есть я получаю значения от курсора, я устанавливаю логическое значение в arrayList, используя это значение. Затем я использую этот массив для отображения флажков. Нет проблем. Проблема начинается, когда он ставит галочку. Данные меняются, но курсор остается прежним. Я устанавливаю значение позиции в arrayList равным true, но когда вызывается getView, он запускает курсор OLD и загружает старые данные, перезаписывая логическое значение arraylist в false. - person Maurice; 15.11.2011