2017-08-11 11 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にバインドする必要があります。 〜

remove(position); 
notifyItemRemoved(position); 
1

adapter.notifyDataSetChanged()を呼び出すだけで、その項目はリストに表示されなくなります。

1

あなたは、あなたがリストから項目を削除し、同じ場所で、アダプタのコンストラクタにグローバルList<Item> mItemsを渡すとRecycleViewを取り込むために、このリストを使用している場合、あなたがする必要があります用に使用して

関連する問題