2016-03-05 54 views
0

我有一個應用程序與RecyclerView和CardView顯示我的主頁(片段)中的一些項目。我的ArrayList將不會清除

我想用SwipeRefreshLayout刷新數據。

SwipeRefreshLayout.setOnRefreshListener我試圖爲提神做到這一點: 1 - 首先清除RecyclerViews的ArrayList 2-然後加載數據(getData()

ArrayList.clear()有時不會完全清除列表!

有時它會完全清除,有時需要兩次刷卡刷新,甚至有時需要三次!!!!

我該怎麼做?

這是輕掃刷新(我沒有在加載數據的問題)只是我的清除碼:

 mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
     @Override 
     public void onRefresh() 
     { 

      listCars.clear(); 

      adapter.notifyDataSetChanged(); 

      mSwipeRefreshLayout.setRefreshing(false); 

     } 
    }); 

回答

0

我也經歷有關notifyDataSetChanged()RecyclerView適配器一些怪異的行爲,方式我現在就這樣做是調用此方法在你onRefresh()方法

adapter.updateData(newData); 

而且在我的適配器具有這種方法

public void updateData(List<Foo> newData) { 
    this.mDataSet = newData; 
    notifyDataSetChanged(); 
} 

由於某種原因notifyDataSetChanged();在適配器外部調用不會始終工作。

+0

你確定它的更新?我剛剛清除問題 –

+0

您只想清除列表,因爲您正在加載新數據,對嗎?所以這與更新相同。 –

+0

以及我應該如何完整地清除列表?我需要清除其他項目 –