2009-10-08 53 views
14

我想知道如何在更改/添加数据时更新ListActivity列表数据更改时更新Android ListActivity?

我首先想到的是,当列表改变ListAdapter会知道,但是当我加入的元素列表上有ListActivity没有更新,只有当我关闭ListActivity并重新打开它,我再次看到发生的变化。

所以我搜索了任何方法,如:update(), refesh()或类似的东西,但没有。 看来我没有得到这个概念,有人可以帮我吗?

回答

22

如果您使用的是ArrayAdapter,请通过适配器处理列表内容 - 请勿触摸底层列表。在ArrayAdapter上有add(),insert()remove()方法。

如果您使用的是CursorAdapter,请在Cursor上运行requery()

+0

好,谢谢不,我理解它是如何工作 – 2009-10-10 16:55:24

+0

我使用ArrayAdapter和我更新的记录。我如何刷新ListView? – 2011-08-18 02:36:01

+3

这当然不再推荐,因为在UI线程上执行了'requery()'。如果你碰巧遇到这篇文章,你应该考虑使用'Loader'来代替。 – 2012-07-10 15:20:59

7

尝试ArrayAdapter:notifyDataSetChanged
Google docs link

+2

只是一个注释,如果没有任何观察员连接到适配器,那不起作用。 – Waltsu 2012-01-05 07:34:16

0

也许你应该这样做setListAdapter(listAdapter);

相关问题