Android 根据时间的升序或降序把数据列表进行排序

简介: 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 返回正数,否则返回负数

after():如果date1>date2 返回负数, 否则返回正数

注:

public int compare(String o1, String o2) :比较其两个参数的顺序。

两个对象比较的结果有三种:大于,等于,小于。

如果要按照升序排序, 则o1 小于o2,返回(负数),相等返回0,o1大于o2返回(正数)

如果要按照降序排序, 则o1 小于o2,返回(正数),相等返回0,o1大于o2返回(负数)


目录
相关文章
|
3月前
|
安全 API Android开发
Android网络和数据交互: 解释Retrofit库的作用。
Android网络和数据交互: 解释Retrofit库的作用。
39 0
|
4月前
|
XML 物联网 API
Android Ble蓝牙App(五)数据操作
Android Ble蓝牙App(五)数据操作
|
4月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
43 1
|
4月前
|
XML Java Android开发
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
39 0
|
4月前
|
数据库 Android开发 开发者
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
Android Studio入门之内容共享ContentProvider讲解以及实现共享数据实战(附源码 超详细必看)
42 0
|
12天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android&#39;s AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
11 0
|
12天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
10 0
|
4月前
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
90 0
|
26天前
|
XML Java Android开发
Android每点击一次按钮就添加一条数据
Android每点击一次按钮就添加一条数据
24 1
|
1月前
|
存储 Android开发 C++
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
【Android 从入门到出门】第五章:使用DataStore存储数据和测试
38 3