添加新数据项时,在运行时更新ListView

时间:2015-12-29 09:51:04

标签: android listview android-listview android-cursoradapter android-cursor

我正在为Android开发短信应用程序。

当用户正在查看线程(ListView)并且发送或收到新消息并且需要在线程末尾添加时,我就陷入了困境。

我正在使用游标适配器填充ListView并在游标适配器中覆盖了getView()方法,而不是newView()bindView()

现在,我无法找到更新ListView的方法,我已经尝试过以下方法:

    适配器中的
  1. notifyDataChanged()
  2. 我可以在StackOverflow上找到的所有其他解决方案。
  3. 我不想创建一个新的适配器并将其添加到列表中,因为它会消耗很多性能。
  4. 我一直在考虑膨胀视图并手动将其添加到列表中,但我想知道是否有更好的方法来实现它。

1 个答案:

答案 0 :(得分:0)

您可以使用notifyDataChanged()来实现。在notifyDataChanged()中,您必须确保您的Collection的引用必须相同。作为参考如果您使用ArrayList数据列表来设置适配器。当新数据出现时,您需要这样做。

 dataList.clear();

dataList.addAll(“您的新数据”);

执行该调用后,调用adapter.notifyDataChanged();

这将工作..它的方式如何notifyDataChanged()工作..引用应该是相同的你不能将新的ArrayList分配给适配器。用户清除()和添加()你的收藏。让我知道是否有任何问题..