gpt4 book ai didi

java - Android - 按类别过滤列表

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:18 25 4
gpt4 key购买 nike

我有两个回收 View ,一个用于选择类别,另一个包含属于各个类别的各种项目。当我单击第一个回收器 View 中的某个类别时,我只想看到第二个回收器 View 中显示的该类别中的项目。经过一番研究,我得到了这段代码,但是当我选择一个类别时,所有类别中的所有项目仍然显示。过滤没有发生......我将不胜感激。提前致谢!

这是在我的 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;
}
}
});
}

最佳答案

您的 SampleDataProvider.displayDataItems 不会更改第二个 RecyclerView 的适配器的数据。

修改代码更新第二个recyclerview的adapter的数据,调用adapter的notifyDataSetChanged。

关于java - Android - 按类别过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41495139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com