2011-06-17 31 views
0

我有一个ArrayAdapter使用ArrayList在ListView中显示数据。在Android ListView编辑ArrayLists

在活动过程中,我有时需要通过添加和删除项目来编辑ArrayList。

如果我在实际ArrayAdapter与底层ArrayList上调用add/delete函数,是否有区别?哪个更好用?

回答

1

使用适配器方法。这将自动通知您的适配器(以及绑定列表)您的数据已更改。

+0

哦。所以它与编辑支持arraylist,然后调用'notifyDataSetChanged()'?是一样的? – yydl

+0

通过检查源代码(http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.6_r2/android/widget/ArrayAdapter.java#ArrayAdapter.add%28java .lang.Object%29)你可以看到大多数情况下,这是真的。 – kabuko

+0

因此,如果我添加了很多项目,每次都调用'notifyDataSetChanged()'。添加底层数组列表是否更好,只调用一次'notifyDataSetChanged()'? – yydl

0

有些时候修改ArrayList是必要的(或者至少是更方便)(例如,是某个其他类的字段,或者是由不知道适配器的其他线程修改的)。

在这些情况下,您将需要致电adapter.notifyDataSetChanged()