2017-08-11 27 views
-1

我有一個RecyclerView這將顯示項目列表。我想爲我的列表提供過濾器,這樣如果用戶選擇A,適配器將跳過其他類型並僅顯示A是否可以跳過RecyclerView.Adapter中的項目?

public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ItemViewHolder> { 
    private List<Item> mItems; 
    private String mSelectedType; 

    @Override 
    public void onBindViewHolder(ItemViewHolder holder, int position) { 
     Item item = mItems.get(position); 
     if (mSelectedType.equals(item.getType())) { 
      //bind it 
     } else { 
      //skip it 
     } 
    } 

    public void setSelectedType(String selectedType) { 
     mSelectedType = selectedType; 
    } 
} 
+1

爲什麼你不刷新你的mItems列表來不包含已刪除的項目,或者如果你仍然需要它們,創建一個沒有刪除項目的tempList並將其放到適配器中。 –

+0

如果它已被刪除,那麼它不應該顯示在列表中。它是如何被刪除的? – FaisalAhmed

回答

0

,你必須從你在RecyclerView綁定列表中刪除isDeleted()項目。那麼必須在RecyclerView之後進行綁定。

1

使用爲:〜

remove(position); 
notifyItemRemoved(position); 
1

如果你傳遞全球List<Item> mItems到適配器構造和使用這個列表來填充RecycleView,那麼在您從列表中刪除的項目在同一個地方,你應該只需調用adapter.notifyDataSetChanged(),該項目將不再出現在列表中。

相關問題