SortBy 在 Kotlin 中降序不按日期工作
SortBy descending in Kotlin is not working by date
我正在从后端 - Room 数据库获取图片对象,我想在 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)
}
sortedBy
不会对列表本身进行排序,而是 returns 一个新的排序列表。所以你需要将结果保存到旧列表中,比如
list = list.sortedBy { it.date }
不过,您需要将其设为 var
。或者直接将排序后的列表传递给 submitList
like
adapter.submitList(list.sortedBy { it.date })
我正在从后端 - Room 数据库获取图片对象,我想在 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)
}
sortedBy
不会对列表本身进行排序,而是 returns 一个新的排序列表。所以你需要将结果保存到旧列表中,比如
list = list.sortedBy { it.date }
不过,您需要将其设为 var
。或者直接将排序后的列表传递给 submitList
like
adapter.submitList(list.sortedBy { it.date })