【问题标题】:Sort dates in descending order按降序排列日期
【发布时间】:2017-06-06 16:41:37
【问题描述】:

我想对日期按降序排列的对象进行排序。这是我在片段中使用的代码 -

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;
}

上面的代码不起作用..实际上没有发生任何事情。我希望列表按降序排列。 我也应该在适配器中做点什么吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

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

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

    请注意,这里我没有将null 作为参数传递。

    【讨论】:

      【解决方案2】:

      您给出的代码要么不完整,要么存在无法回答的编译错误。

      但是,一方面,我必须要问,当标准 Date 类已经实现 Comparable 时,为什么您认为有必要将日期转换为字符串来对它们进行排序?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-17
        • 2020-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多