如何在getView()中从ListView中删除项目?

时间:2014-08-30 08:18:04

标签: android listview android-listview

期间getView()

我将布局设置为列表中的每个项目。

但是我想从我的ArrayList中删除一些项目,也不会在列表中绘制。

我的代码如下:

getView() {

    if (condition a)
    {
        myArrayList.remove(currentIndex);
        return;
    }

    doMoreLayouting();
}

这是正确的方法吗?

在列表绘制过程中从集合中删除项目时是否会造成任何伤害?

1 个答案:

答案 0 :(得分:0)

  

在此期间从集合中删除项目时是否会造成任何伤害   列表绘图?

是的,主要的问题是首先集合中的项目会被删除,但如果getView已经调用了该项目,并且在绘制之后将其删除,那么您的第一个问题是它不会被删除,因为你需要调用notifyDataSetChanged再次调用getView来从listView中删除它。

其次,如果列表中的每个项目都需要删除数组中的某个位置,那么它会一次又一次地调用getView,这对于您的应用程序的执行并不明智。

我建议您从适配器的方法中删除它,并确保收集所有需要删除的数据,并仅为性能而调用notifyDataSetChanged一次。