为了账号安全,请及时绑定邮箱和手机立即绑定

recyclerview 中的列表未排序

recyclerview 中的列表未排序

FFIVE 2023-07-13 17:34:28
我在数据库中有一个电话号码和消息对的列表。我想在按选项菜单中的相应按钮后按电话号码或消息文本以相反的顺序对列表进行排序。我用 实现Collections.sort并compare更新了适配器notifyDataSetChanged()。然而,当我按下按钮时,什么也没有发生。作为测试,我尝试notifyDataSetChanged()在 的末尾调用排序方法 和onViewCreated(),但也没有排序。为什么没有Collections.sort对我的列表进行排序?
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

难道是因为里面的代码onLoadFinished吗?我不喜欢加载器,但是您为回收器视图设置了一个适配器,传递局部变量list。这意味着调用此代码后,您的适配器不再绑定mLogList



查看完整回答
反对 回复 2023-07-13
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

对于按字典顺序反向排序 LogEntryItem 消息:

class SortbyMessage implements Comparator<LogEntryItem> { 
    @Override
    public int compare(LogEntryItem a, LogEntryItem b) { 
        return a.getMessageSent().compareTo(b.getMessageSent());
    } 
}

现在你可以像这样使用它

Comparator comparator = Collections.reverseOrder(new SortbyMessage()); 
Collections.sort(ar, comparator);

对于数字排序与上面类似,除了

return a.getPhoneNumber() - b.getPhoneNumber();

或者在您的reverseSortComparePhoneNumber方法中将您的返回更改为

itemB.getPhoneNumber() - itemA.getPhoneNumber();


查看完整回答
反对 回复 2023-07-13
  • 2 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信