Я сомневаюсь, что SimpleCursorAdapter - подходящий класс для расширения здесь.
Связано ли "проверенное" состояние с данными XML каким-либо образом? Нет? Так что вам нужен собственный адаптер!
В основном все адаптеры должны реализовывать способ генерирования представления из заданного элемента (точнее, позиции элемента!). Это будет вызвано в любое время, когда список хочет отобразить элемент. Теперь уловка, которую он использует, состоит в том, чтобы повторно использовать ранее созданные элементы представления списка, которые больше не видны на экране! Таким образом: когда вы прокручиваете свой список вниз и элемент исчезает сверху, ИМЕННО этот объект просмотра будет повторно использован для следующего появившегося элемента.
Таким образом, когда этот метод вызывается с заданным «старым» представлением, которое следует использовать повторно, все содержащиеся в нем элементы должны быть установлены в соответствии с данными элементов. Если флажок является частью этой игры, у вас должно быть хранилище для проверенного состояния! Недостаточно иметь флажок, так как объектов флажка будет меньше, поскольку есть элементы списка!
SimpleCursor Адаптеры предназначены для - да - представления ПРОСТЫХ вещей. XML, описывающий данные (изображения и текст, как указано в документации). Из-за этой простоты все, что вам нужно здесь сделать, - это предоставить метод для создания НОВЫХ объектов представления элементов - вы не перехватываете процесс повторного использования ВСЕ! Он в основном знает только, как поместить данные в существующий объект представления, но ему не хватает знаний о том, как обрабатывать отмеченные / не отмеченные поля!
Ваше решение: написать свое собственное расширение BaseAdapter и сделать то, что должно быть сделано: реализовать "getView" (и некоторые другие методы, такие как getItem, getItemId и getCount). Это совсем не сложно!
Это API Demo использует BaseAdapter, и состояние mExpanded
здесь в основном идентично вашим состояниям флажков!
Удачи!