我在我的应用程序中添加了一个功能,该功能使用户可以填写过去的日期,如果今天是14/03/2020,则可以让您填写10/03/2020(或任何其他日期)的条目。但是我在对我的数组列表进行排序时遇到问题,以便所有具有相同日期的条目都在数组列表中。
我在自定义ListView中向用户显示这些条目,因此为了使我的应用程序更加用户友好,我希望所有具有相同日期的条目一起显示。
我有一个自定义arraylist,它接受费用名称(字符串),金额(字符串)和日期(字符串)
ArrayList<ExpenseData> customArrayList=new ArrayList<ExpenseData>();
如果您需要任何其他信息,请询问...谢谢!
问题来源:Stack Overflow
您可以使用以下方法按日期对列表进行排序。
Collections.sort(list, (item1, item2) -> {
Date date1 = stringToDate(item1.getDate());
Date date2 = stringToDate(item2.getDate());
if (date1 != null && date2 != null) {
boolean b1;
boolean b2;
if (isAscending) {
b1 = date2.after(date1);
b2 = date2.before(date1);
}else {
b1 = date1.after(date2);
b2 = date1.before(date2);
}
if (b1 != b2) {
if (b1) {
return -1;
}
if (!b1) {
return 1;
}
}
}
return 0;
});
public static Date stringToDate(String strDate) {
if (strDate == null)
return null;
// change the date format whatever you have used in your model class.
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a", Locale.US);
Date date = null;
try {
date = format.parse(strDate);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。