2014-08-30 67 views
1

getView()如何从ListView中删除一个项目,而getView()?

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

但是,我想从我的ArrayList中删除一些项目,也未列入清单。

我的代码是这样:

getView() { 

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

    doMoreLayouting(); 
} 

这是正确的方式?

在列表绘制期间从集合中删除项目时它会有什么伤害吗?

+1

我不认为这是一个从适配器中删除数据的好地方。你为什么需要在这里做? – pskink 2014-08-30 08:23:52

+1

为什么在给定数据给适配器之前,你没有检查这个条件? – 2014-08-30 08:41:41

回答

0

在 列表绘图中,当您从集合中删除某个物品时,它是否会造成任何伤害?

是的,它会,主要的问题是,第一集合中的项目将被删除,但如果该项目已经由getView叫,你要删除它,它被吸入后,再有就是你的第一个问题它不会得到删除,因为你需要调用notifyDataSetChanged再次调用getView从listView中删除它。

其次是如果您的列表中的每个项目都需要删除阵列中的某个地方,那么它会一次又一次地调用getView,这对您的应用程序的性能并不明智。

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

相关问题