我有几件物品RecyclerView
每个项目都有一个long
随之保存的价值。我在用着快速适配器 https://github.com/mikepenz/FastAdapter作为我的适配器RecyclerView
.
假设有 7 个项目RecyclerView
与长值:11122
, 12321
, -98811
, 8870
, -88009
, 3398
, and -22113
.
So, 我想要什么我要做的是,我想使用以下逻辑根据上面给定的长值过滤项目:
if (l <= 1000) {
// show items with long value <=1000
} else if (l > 1000) {
// show items with long value >1000
}
我尝试了各种方法,但没有任何结果。
UPDATE 1:这里的项目是存储在中的一种不同的数据CardView
然后显示在RecyclerView
。每张卡包含不同的数据,其中之一是上面给出的long
价值观。我想根据这些过滤数据long
根据上面给出的逻辑存储在每张卡中的值。
请帮助我解决这个问题,并建议一些我可以实现这一目标的算法或代码。
根据给出的信息量,我只能假设l
是一个外部选择器值,它控制要在内部显示的项目RecyclerView
。如果不是这种情况,请在下面评论,我会尝试纠正我的答案。
我建议实施自定义ViewAdapter
,发送项目列表和选择器变量l
使用各自的方法:
public class ItemsAdapter extends
RecyclerView.Adapter<ItemsAdapter.ItemViewHolder> {
private List<Long> mItemList;
private List<Long> mDisplayItems;
private boolean mAboveThousand = true;
public void setItemList(List<Long> list) {
mItemList = list;
updateDisplayItems();
}
public void setSelectionType(boolean aboveThousand) {
mAboveThousand = aboveThousand;
updateDisplayItems();
}
private updateDisplayItems() {
mDisplayItems.clear();
for(Long item: mItemList) {
if(/*check your contition*/) {
mDisplayItems.add(item);
}
}
notifyDataSetChanged(); //important
}
...
// Rest of implementation
}
另外,我从未使用过 FastAdapter,但我想如果您扩展它的类,则必须重写一些方法。
Update
因为,您面临着理解使用 a 的基础知识的问题。ViewAdapter
,我建议学习并实施自定义ViewAdapter
在使用任何库之前。Here https://guides.codepath.com/android/using-the-recyclerview这是关于如何实施的详细教程ViewAdapter
对于 RecyclerView。
现在,在实现 ViewAdapter 后,您可以使用我的代码来过滤卡片。基本上,代码所做的就是保存所有所需数据的列表mItemList
, while mDisplayList
是一个列表,存储要显示的项目,每次都会更新mAboveThousand
,存储大于或小于1000的用户偏好。现在这个mDisplayList
必须用于填充 RecyclerView 内的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)