我從后端獲取圖片物件 - 房間資料庫,我想在 RecyclerView 中按日期對它們進行排序 - 最近在頂部。我正在使用 kotlin 串列函式,但是 ASC 和 DESC 排序的結果是相同的。為什么?
這是我的代碼:
private fun inflateRecyclerView(pictureList: List<FavouritePictureModel>) {
val list = pictureList.map { picture ->
picture.id.let {
id
FavouritePicturesItem(
id = id,
copyright = picture.copyright,
date = dateStringToDate(picture.date),
explanation = picture.explanation,
title = picture.title,
url = picture.url,
bitmap = picture.bitmap,
)
}
}
list.sortedBy { it.date }
Timber.d("Sorted ASC: $list")
list.sortedByDescending{ it.date }
Timber.d("Sorted DESC: $list")
adapter.submitList(list)
}
@SuppressLint("SimpleDateFormat")
private fun dateStringToDate(date: String): Date {
return SimpleDateFormat("yyyy-MM-dd").parse(date)
}
uj5u.com熱心網友回復:
sortedBy不對串列本身進行排序,而是回傳一個帶有排序的新串列。所以你需要將結果保存到舊串列中,比如
list = list.sortedBy { it.date }
你需要把它變成一個varthen 。或者直接將排序串列傳遞給submitList類似
adapter.submitList(list.sortedBy { it.date })
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/437126.html
