如果不推荐使用requery,Android如何编码?

时间:2011-08-23 06:22:23

标签: android cursor

根据主题。如果我们以前调用cursor.requery(),但现在不推荐使用,那么现在如何调用此函数?

“不推荐使用此方法。 不要使用它。只需请求一个新光标,这样就可以异步执行此操作,并在新光标返回后更新列表视图。“

那么如何请求新光标并将其传递回适配器?

4 个答案:

答案 0 :(得分:2)

想一下你需要一次又一次地使用光标的块。用查询填充它。使用它然后在重新使用之前关闭

{
    Cursor c =//Populating cursor again
    while (c.moveToNext()) {
    }
    if (c != null) c.close();
}

答案 1 :(得分:2)

在执行任何DML查询时再次重新初始化游标,可以参考this

答案 2 :(得分:1)

使用Loader管理您的游标。它将根据需要返回一个新的Cursor,您可以使用适配器上的swapCursor()来刷新数据。

答案 3 :(得分:-1)

我使用 ListAdapter.notifyDataSetChanged();当listcontent发生变化时,这仅适用于列表(如ArrayList)。 使用databaseoutput,它不再起作用。因此,我采用了 cursor.requery(); ,这不仅仅是被删除的。如果数据库条目发生更改,它也只能起作用。

但是现在,我想通过更改数据库中的设置来更改我的视图(在生日和日期之间切换),因此重新查询无法识别它。

对于所有更改都有效(有点脏): this.onCreate(null);