Ham*_*sir 8 java algorithm android android-recyclerview fastadapter
我有几个项目,RecyclerView每个项目都有一个long保存的值.我正在使用FastAdapter作为我的适配器RecyclerView.
假设有在7个项目RecyclerView与长值:11122,12321,-98811,8870,-88009,3398,和-22113.
所以,我想要做的是,我想使用这个逻辑基于上面给出的长值过滤项目:
if (l <= 1000) {
// show items with long value <=1000
} else if (l > 1000) {
// show items with long value >1000
}
Run Code Online (Sandbox Code Playgroud)
我尝试了各种各样的东西,但没有成功.
更新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
}
Run Code Online (Sandbox Code Playgroud)
此外,我从未使用过FastAdapter,但我认为如果扩展其类,必须有一些方法可以覆盖.
因为,您在理解使用a的基础知识时遇到问题ViewAdapter,我建议ViewAdapter在使用任何库之前学习和实现自定义.这是一个关于如何实现ViewAdapterRecyclerView 的广泛教程.
现在,在您实现ViewAdapter之后,您可以使用我的代码来过滤掉卡片.基本上,代码正在做的是保存内部所有所需数据的列表mItemList,同时mDisplayList设置存储要显示的项目的列表,该列表每次更新mAboveThousand,其存储高于或低于1000的用户偏好.现在mDisplayList必须使用它来扩充RecyclerView中的数据.
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |