2017-06-06 79 views
0

我想对具有日期递减顺序的对象进行排序。这里是我在我的片段中使用的代码 -排序日期降序

int pos = adapter.contains(status.id);  
if (pos == -1) { 
    myobj = new MyAdapter.Mymyobj(); 
    myobj.status = status; 
    adapter.addItem(myobj); 
} else { 
    myobj = adapter.getItem(pos); 
    myobj.status = status; 
} 
convertStringToDate(myobj.status.getTimeInString()); 
sortDates.add(convertedDate); 
Comparator<Date> cmp = Collections.reverseOrder(null); 
Collections.sort(sortDates, cmp); 

adapter.notifyDataSetChanged(); 

private Date convertStringToDate(final String dateString) { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM. HH:mm"); 
    try { 
     convertedDate = dateFormat.parse(dateString); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    return convertedDate; 
} 

上述代码不工作..实际上没有什么事情发生。我希望列表按降序排列。 我应该在适配器中做些什么吗?

回答

1

看看这个tutorial。它向您展示了如何使用Collections.reverseOrder()比较器。基本上,你说错了。您应该使用:

Collections.sort(sortDates, Collections.reverseOrder());

请注意,我不是过客null作为参数在这里。

+0

似乎不工作:(尝试与它 – GHousy8909

0

您提供的代码不完整,或者有编译错误导致无法回答。

但是,首先,我必须问,为什么您认为有必要将日期转换为字符串来进行排序,而标准的Date类已经实现了Comparable?

另一方面,您的convertDateToString()方法会捕获DateParseException并在没有用户看到它们的情况下将其打印出来,然后继续进行,就像什么都没有发生过一样,这可能会在代码后面导致NPE。