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

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

qq_花開(kāi)花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
對(duì)于按字典順序反向排序 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);
對(duì)于數(shù)字排序與上面類似,除了
return a.getPhoneNumber() - b.getPhoneNumber();
或者在您的reverseSortComparePhoneNumber方法中將您的返回更改為
itemB.getPhoneNumber() - itemA.getPhoneNumber();
添加回答
舉報(bào)
0/150
提交
取消