比方说,我已经使用Paging Library实现了无限滚动列表,但是现在我想给用户一个选项,以便在客户端对数据进行排序,我该怎么做?例如,我有电影数据,分页库可以很好地加载所有电影,但是如何根据收视率或发行日期对电影进行排序。
任何帮助将不胜感激。
答案 0 :(得分:0)
我还没有尝试过这种方法,但希望它能起作用。
假设您使用RecyclerView
来显示列表(因为在recyclerView中它要容易得多)
从服务器获取前十个项目并选择对它进行排序时,请按名称(升序)说。您必须在此处使用两个ArrayList: 1:finalArrayList:-包含所有整个列表 2:updateArrayList:-具有最新的十个结果
当您选择排序(onButtonClick)
updateArrayList = new ArrayList<>();
updateArrayList.addAll(finnalArrayList);
Collections.sort(updateArrayList, new Comparator<StoreModel>() {
public int compare(StoreModel obj1, StoreModel obj2) {
// ## Ascending order
if (sortingBy == 0) {
return obj1.getName().compareToIgnoreCase(obj2.getName());
}});
adapter.clear();
adapter.addAll(updateArrayList);
仅在单击按钮时运行此代码
现在,当您向下滚动并收到更多数据时
updateArrayList = new ArrayList<>();
updateArrayList.add(StoreModel)//Add the latest ten data from the response
并在将其发送到适配器之前对其进行排序
Collections.sort(updateArrayList, new Comparator<StoreModel>() {
public int compare(StoreModel obj1, StoreModel obj2) {
// ## Ascending order
if (sortingBy == 0) {
return obj1.getName().compareToIgnoreCase(obj2.getName());
}});
adapter.addAll(updateArrayList);
希望您能掌握并希望它能奏效。干杯:)