2014-08-30 58 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一次。

相關問題