美文网首页程序人生
Android 展示列表按照时间日期进行排序

Android 展示列表按照时间日期进行排序

作者: 为自己代颜_ | 来源:发表于2018-09-28 17:10 被阅读0次

最近在项目中需要将读取的数据按照时间的降序进行排序。
开始使用model实现Comparable接口重写compareTo但是没有效果,果断放弃,只能自己写个排序算法,可以使用冒泡排序:
具体的步骤如下:
1.读取数据,存入List中

2.取出数据中的时间戳,由String转换成Date

3.使用冒泡排序对List中元素按照Date进行排序

项目的需求是排序本地mp3文件录音列表 按照文件创建的时间进行排序
直接获取文件的最后修改时间也就是文件创建完保存到本地的时间

//格式:Fri Sep 28 16:23:39 GMT+08:00 2018
recordingModel.voiceEndTimeTotal = Date(File(filePath).lastModified())

此处我直接写的自己的model和自定义的字段

排序算法具体代码如下:

//将List按照时间降序进行排列
    private fun invertOrderList(L: ArrayList<RecordingModel>?): ArrayList<RecordingModel> {
        var d1: Date;
        var d2: Date;
        var temp_r = RecordingModel();
        //这是一个冒泡排序,将大的放在数组前面
        for (i in 0 until L?.size!! - 1) {
            for (j in i + 1 until L.size) {
                d1 = L.get(i).voiceEndTimeTotal!!
                d2 = L.get(j).voiceEndTimeTotal!!
                if (d1.before(d2)) {//如果日期靠前,则换顺序
                    temp_r = L.get(i);
                    L[i] = L.get(j)
                    L[j] = temp_r
                }
            }
        }
        return L;
    }

将返回的处理好的list重新传入到adapter的列表中就可以了。

相关文章

网友评论

    本文标题:Android 展示列表按照时间日期进行排序

    本文链接:https://www.haomeiwen.com/subject/oxmpoftx.html