我在數(shù)據(jù)庫中有一個電話號碼和消息對的列表。我想在按選項菜單中的相應按鈕后按電話號碼或消息文本以相反的順序?qū)α斜磉M行排序。我用 實現(xiàn)Collections.sort并compare更新了適配器notifyDataSetChanged()。然而,當我按下按鈕時,什么也沒有發(fā)生。作為測試,我嘗試notifyDataSetChanged()在 的末尾調(diào)用排序方法 和onViewCreated(),但也沒有排序。為什么沒有Collections.sort對我的列表進行排序?
2 回答

犯罪嫌疑人X
TA貢獻2080條經(jīng)驗 獲得超4個贊
難道是因為里面的代碼onLoadFinished
嗎?我不喜歡加載器,但是您為回收器視圖設(shè)置了一個適配器,傳遞局部變量list
。這意味著調(diào)用此代碼后,您的適配器不再綁定mLogList
。

qq_花開花謝_0
TA貢獻1835條經(jīng)驗 獲得超7個贊
對于按字典順序反向排序 LogEntryItem 消息:
class SortbyMessage implements Comparator<LogEntryItem> { @Override public int compare(LogEntryItem a, LogEntryItem b) { return a.getMessageSent().compareTo(b.getMessageSent()); } }
現(xiàn)在你可以像這樣使用它
Comparator comparator = Collections.reverseOrder(new SortbyMessage()); Collections.sort(ar, comparator);
對于數(shù)字排序與上面類似,除了
return a.getPhoneNumber() - b.getPhoneNumber();
或者在您的reverseSortComparePhoneNumber方法中將您的返回更改為
itemB.getPhoneNumber() - itemA.getPhoneNumber();
添加回答
舉報
0/150
提交
取消