从列表中删除项目后,无法实时刷新列表视图

时间:2011-11-29 08:25:55

标签: android sqlite listview

我有一个包含文字和按钮的列表视图。 listview(文本)的内容是从SQLite数据库中获取的。我已经实现了代码,如果有人单击该按钮,该列表项的相应标志将在数据库表中更改。我的意图是,只要在数据库表中更改了标志,相应的列表项就会从列表中消失。

目前,我可以更改列表项的标志值(在表的相应列中成功更新),但列表项仍保留在列表视图中,直到我重新打开应用程序。然后列表项会根据需要消失。

有没有这样的方式,只要我点击按钮,并且在后台更改了标志值,列表就会刷新并只显示列表中的其他项目。?

非常感谢您的帮助。提前谢谢。

5 个答案:

答案 0 :(得分:2)

在更改数据源中的任何内容后,您需要执行requery()

- 编辑 -

刚发现requery正在弃用,但无论如何,这个想法是一样的。查询另一个新的Cursor,并在CursorAdapter中设置它(如果你正在使用它)。

答案 1 :(得分:0)

  1. 使用新光标查询并在CursorAdapter中设置结果
  2. 使现有列表视图无效()

答案 2 :(得分:0)

通常,对于ListView,您必须为ListView准备一个适配器,以提供ListView中每个项目的内容。 基本思路是,为了刷新列表视图,您必须调用adapter.notifyDataSetChanged()来请求刷新。

答案 3 :(得分:0)

感谢大家的回复。我试图用android方式做,但似乎有点复杂。因此,为了在更新列表后刷新列表视图,我使用意图重新调用了活动,这样我就可以获得一个带有添加或删除列表条目的新列表视图。

希望我能尽快找到其他解决方案的方式。

答案 4 :(得分:0)

getLoaderManager().restartLoader(0, null, this);