android listview:adapter.add(项目)?或适配器。notifyDataSetChanged()

android listview:adapter.add(项目)?或适配器。notifyDataSetChanged(),android,listview,Android,Listview,当我使用listview时,我扩展了ArrayAdapter,并将数据(一个列表)存储在ArrayAdapter中,因此当数据更改时,我调用: adapter.add(item).; 还有另一种选择,将数据存储在我的列表中,当数据发生更改时,在MyAdapter.java中调用: listView.setAdapter(adapter); adapter.notifyDataSetChanged(); 哪个是最佳选择?场外适配器。添加(项目)

当我使用listview时,我扩展了ArrayAdapter,并将数据(一个列表)存储在ArrayAdapter中,因此当数据更改时,我调用:

adapter.add(item).;
还有另一种选择,将数据存储在我的列表中,当数据发生更改时,在MyAdapter.java中调用:

 listView.setAdapter(adapter);
 adapter.notifyDataSetChanged();

哪个是最佳选择?

场外
适配器。添加(项目)notifyDataSetChanged()
是比初始化新适配器并重新设置更好的方法。但是,只有当我们使用同一个列表并添加或删除某些元素时,它才会起作用。当我们更改整个列表时,此时它将不起作用。我们应该使用list.addall(nList)。

应该是
notifyDataSetChanged()
,因为不是手动将项目添加到适配器,而是会通知附加到适配器的数据发生更改,并且数据集应该自行刷新