【发布时间】:2011-02-04 11:48:48
【问题描述】:
我有一个ListActivity,它从数据库查询中获取数据。我还有一个自定义适配器,它扩展了简单的光标适配器。
为了显示自定义内容,我重写了newView 和bindView 方法。
视图的每个元素都有:
-
TextView包含标题 -
ImageView包含星数 - 显示的图像根据从数据库中获得的值进行更改 - 一个按钮 - 按钮文本在点击时发生变化(收藏/收藏),并触发数据库更新事件。
我的问题是 - 当我滚动 ListView 时,我所做的更改似乎消失了.. 例如,第一个项目被标记为收藏,列表被滚动......当我回到第一个项目,文本恢复到以前的值,尽管内部数据库已更新。
我读到notifyDatasetChanged() 不适合这种情况,因为应该通知适配器数据库更改。我正在尝试使用reQuery() 方法,但不知道该放在哪里。
我应该将reQuery() 放在按钮的onClick 方法中吗?如果不是,应该放在哪里?
【问题讨论】:
标签: android android-listview android-adapter