我创建了一个扩展ArrayAdapter的CustomArrayAdapter,并使用ArrayList list1
对其进行初始化。在用户操作后,我创建了第二个列表list2
,需要花费一些时间来填充。成功创建后,我希望CustomArrayAdapter使用list2
作为数据源。
例如:
list2 = new ArrayList<>();
//actions that populate list2
list1 = list2;
customAdapter.notifyDataSetChanged();
但是,当然,customAdapter
不会更新,因为它仍然会查看list1
使用指向的内存地址,因此它仍然使用旧数据。
有效更改我的customAdapter
用于数据的列表的最佳方法是什么?例如,我可以这样做:
list1.clear();
list1.addAll(list2);
但这会非常低效。