2017-01-05 39 views
0

我有两个recyclerviews,一个用于选择一个类别,另一个用于属于各种类别的各种物品。当我点击我的第一个回收站视图中的类别时,我想只看到第二个回收站视图中显示的该类别中的项目。经过一番研究,我已经到了这个代码,但是当我选择一个类别时,所有类别中的所有项目都仍然显示。过滤没有发生......我很感激一些指针。提前致谢!Android - 按类别过滤列表

这是我DataProvider类:

public static Predicate<DataItem> predAnimals = new Predicate<DataItem>() { 
    @Override 
    public boolean apply(DataItem dItem) { 
     return (dItem.getCategory() == "Animals"); 
    } 
}; 

public static void displayDataItems(List<DataItem> dataItemList, final Predicate<DataItem> pred) { 
    for (DataItem dItem : dataItemList) { 
     if (pred.apply(dItem)){ 
      System.out.println(dItem.toString()); 
     } 

    } 
} 

这是我的类别recyclerAdapter类:

 holder.myView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      String itemName = item.getItemName(); 
      Intent intent = new Intent (catContext, SelectionPage.class); 
      intent.putExtra(ITEM_KEY_TWO, itemName); 
      catContext.startActivity(intent); 

      switch (itemName){ 
       case "Animals": 
        SampleDataProvider.displayDataItems(dataItemList, predAnimals); 
        Toast.makeText(catContext, "Animals", Toast.LENGTH_SHORT).show(); 
        break; 
       case "Cartoons": 
        Toast.makeText(catContext, "Cartoons", Toast.LENGTH_SHORT).show(); 
        break; 
      } 
     } 
    }); 
} 
+0

请添加您创建回收器视图和适配器的代码 – Gustavo

回答

0

你SampleDataProvider.displayDataItems不改变第二RecyclerView的适配器的数据。

更改代码以更新第二个recyclerview的适配器的数据并调用适配器的notifyDataSetChanged。