recyclerview 中的列表未排序

我在数据库中有一个电话号码和消息对的列表。我想在按选项菜单中的相应按钮后按电话号码或消息文本以相反的顺序对列表进行排序。

我用 实现Collections.sortcompare更新了适配器notifyDataSetChanged()。然而,当我按下按钮时,什么也没有发生。作为测试,我尝试notifyDataSetChanged()在 的末尾调用排序方法 和onViewCreated(),但也没有排序。

为什么没有Collections.sort对我的列表进行排序?



FFIVE
浏览 95回答 2
2回答

犯罪嫌疑人X

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

qq_花开花谢_0

对于按字典顺序反向排序 LogEntryItem 消息:class&nbsp;SortbyMessage&nbsp;implements&nbsp;Comparator<LogEntryItem>&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;@Override &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;compare(LogEntryItem&nbsp;a,&nbsp;LogEntryItem&nbsp;b)&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a.getMessageSent().compareTo(b.getMessageSent()); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; }现在你可以像这样使用它Comparator&nbsp;comparator&nbsp;=&nbsp;Collections.reverseOrder(new&nbsp;SortbyMessage());&nbsp; Collections.sort(ar,&nbsp;comparator);对于数字排序与上面类似,除了return&nbsp;a.getPhoneNumber()&nbsp;-&nbsp;b.getPhoneNumber();或者在您的reverseSortComparePhoneNumber方法中将您的返回更改为itemB.getPhoneNumber()&nbsp;-&nbsp;itemA.getPhoneNumber();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java