期间getView()
我将布局设置为列表中的每个项目。
但是我想从我的ArrayList
中删除一些项目,也不会在列表中绘制。
我的代码如下:
getView() {
if (condition a)
{
myArrayList.remove(currentIndex);
return;
}
doMoreLayouting();
}
这是正确的方法吗?
在列表绘制过程中从集合中删除项目时是否会造成任何伤害?
答案 0 :(得分:0)
在此期间从集合中删除项目时是否会造成任何伤害 列表绘图?
是的,主要的问题是首先集合中的项目会被删除,但如果getView
已经调用了该项目,并且在绘制之后将其删除,那么您的第一个问题是它不会被删除,因为你需要调用notifyDataSetChanged
再次调用getView
来从listView中删除它。
其次,如果列表中的每个项目都需要删除数组中的某个位置,那么它会一次又一次地调用getView
,这对于您的应用程序的执行并不明智。
我建议您从适配器的方法中删除它,并确保收集所有需要删除的数据,并仅为性能而调用notifyDataSetChanged
一次。