У меня есть ListActivity
, который получает свои данные из запроса базы данных. У меня также есть пользовательский адаптер, который расширяет простой адаптер курсора.Android - обновление simpleCursorAdapter
Чтобы показать настроенный контент, я переопределил методы newView
и bindView.
Каждого элемент зрения имеет:
TextView
, содержащий заголовокImageView
, содержащее количество звезд - изображение, показанное изменяется на основании значения, полученное из базы данных- кнопки - The текстовые изменения кнопок на кликах (Favorite/Make Favorite) и запускает событие обновления базы данных.
Моя проблема заключается в следующем - когда я прокручивать ListView
, изменения, которые я сделал, кажется, исчезают .. например, первый элемент помечен как фаворит, и список прокручивается ... когда я вернусь к первый элемент, текст возвращается к его предыдущему значению, хотя внутренне db обновлен.
Я читал, что notifyDatasetChanged()
не подходит для этого случая, так как адаптер должен быть уведомлен об изменениях в базе данных. Я пытаюсь использовать метод reQuery()
, но не знаю, где его разместить.
Должен ли я разместить reQuery()
в методе onClick
кнопки? Если нет, куда его следует поместить?
спасибо, было очень полезно, это помогло мне решить некоторые другие проблемы, но я до сих пор имеет те же проблемы, т.е. адаптер не знает, что мнение изменилось , Это то, что делает мой код, изменение - это изменение базы данных - то есть элемент представления имеет встроенную кнопку, а нажатие кнопки изменяет значение в БД. Закрытие и повторное открытие активности показывает, что база данных правильно обновлена, но не в режиме реального времени. Мой класс активности расширяет ListActivity –
Я также реализовал listView с кнопкой удаления, которая после нажатия удаляет данные строки из базы данных и listview, после этого обновляется. Я никогда не использую никаких действий, которые расширяют ListActivity. вместо этого я всегда вставляю представление списка в действие. Это личное предпочтение, но когда-то оно устраняет некоторые проблемы. – Javanator