Android 根据时间的升序或降序把数据列表进行排列
Posted 路 宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 根据时间的升序或降序把数据列表进行排列相关的知识,希望对你有一定的参考价值。
前言:
项目开发中,需要实现音频文件的下载,根据时间降序排列数据列表
步骤一:
创建时间工具类DateUtil
创建stringToDate()方法将字符串转换为date日期格式:
public static Date stringToDate(String dateString){
//从第一个字符开始解析
ParsePosition position = new ParsePosition(0);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateValue = simpleDateFormat.parse(dateString,position);
return dateValue;
}
分析:
1.ParsePosition 是 Format 及其子类所使用的简单类,用来在分析过程中跟踪当前位置。
2.对参数dateString(String类型)从第一个字符开始解析(由position ),转换成java.util.Date类型,
而这个Date的格式为"yyyy-MM-dd HH:mm:ss"
(因为SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);)
3.simpleDateFormat.parse():将字符串转换为Date日期格式
simpleDateFormat.format():将Date日期格式转换为字符串
步骤二:
在显示数据列表的Activity中通过比较器比较时间,之后提供适配器的对象
//通过比较器比较时间
Collections.sort(userDowns, new Comparator<UserDown>() {
@Override
public int compare(UserDown o1, UserDown o2) {
Date date1 = DateUtil.stringToDate(o1.DownTime);
Date date2 = DateUtil.stringToDate(o2.DownTime);
//按照降序排列,如果按升序排列用after即可
if (date1.before(date2)) {
return 1;
} else {
return -1;
}
}
});
//提供适配器的对象
mAdapter = new MyDownloadAdapter(this, userDowns);
分析:
before() :如果date1<date2 返回true 否则 返回 false
after() :如果date1>date2 返回true 否则返回false
以上是关于Android 根据时间的升序或降序把数据列表进行排列的主要内容,如果未能解决你的问题,请参考以下文章
linux 中 ll 命令如何让查询结果按时间升序或降序排序?