android listview:adapter.add(item)?或者adapter.notifyDataSetChanged()

Bol*_*ose 6 android listview

当我使用listview时,我扩展了ArrayAdapter并将数据(一个列表)存储在ArrayAdapter中,所以当数据发生变化时,我调用:

adapter.add(item).;
Run Code Online (Sandbox Code Playgroud)

还有另一种选择,将数据存储在我的列表中,当数据发生变化时,在MyAdapter.java中调用:

 listView.setAdapter(adapter);
 adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

哪个是最好的选择?

Jig*_*iya 5

当然adapter.add(item);,在那次调用之后notifyDataSetChanged()是更好的方法,而不是初始化新适配器并再次设置它。但它只有在我们使用相同的列表并添加或删除一些元素时才有效。当我们更改整个列表时,它不会起作用,我们应该使用 list.addall(nList)。