日付を含む多くのリスト項目を含むリストビューがあります。日付が現在の日付より後のアイテムが最初になり、日付が期限切れになったアイテムがその後になるように、アイテムを日付で並べ替えたい。誰でも助けることができます。
質問する
12679 次
2 に答える
13
そのような独自のコンパレータを使用できます
Collections.sort(yourList, new Comparator<YourObjectInYourList>() {
public int compare(YourObjectInYourList o1, YourObjectInYourList o2) {
if (o1.getDate() == null || o2.getDate() == null)
return 0;
return o1.getDate().compareTo(o2.getDate());
}
});
于 2013-10-24T08:28:03.997 に答える
0
List<Date> dateList = new ArrayList<Date>();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy",Locale.US);
try {
dateList.add(sdf.parse("01/12/2013"));
dateList.add(sdf.parse("02/11/2013"));
dateList.add(sdf.parse("03/12/2013"));
dateList.add(sdf.parse("04/10/2013"));
dateList.add(sdf.parse("05/12/2013"));
dateList.add(sdf.parse("06/12/2013"));
dateList.add(new Date());
Collections.sort(dateList);
Comparator<Date> cmp = new Comparator<Date>() {
@Override
public int compare(Date o1, Date o2) {
if(o1.getTime() > o2.getTime()) return 1;
else if(o1.getTime() < o2.getTime()) return -1;
else return 0;
}
};
Collator collator = Collator.getInstance();
List<Date> out_of_date_list = new ArrayList<Date>();
for(Date date : dateList){
System.out.println(">>> date = "+sdf.format(date));
System.out.println(">>> out of date "+cmp.compare(new Date(), date));
if(cmp.compare(date,new Date())<0){
out_of_date_list.add(date);
}
}
System.out.println(">>> print all out of date ");
for(Date date : out_of_date_list){
System.out.println(">>> date = "+sdf.format(date));
}
} catch (ParseException e) {// TODO Auto-generated catch block
e.printStackTrace();
}
于 2013-10-24T09:07:46.273 に答える