Android 按日期和时间排序的日历查询

Android 按日期和时间排序的日历查询,android,google-calendar-api,android-calendar,Android,Google Calendar Api,Android Calendar,我试图返回一个按日期和时间排序的日历事件查询,以便迭代它们。我这样问: private Cursor mCursor = null; private static final String[] COLS = new String[]{CalendarContract.Events.TITLE, CalendarContract.Events.DTSTART, CalendarContract.Events.AVAILABILITY}; mCursor = getContentResolver()

我试图返回一个按日期和时间排序的日历事件查询,以便迭代它们。我这样问:

private Cursor mCursor = null;
private static final String[] COLS = new String[]{CalendarContract.Events.TITLE, CalendarContract.Events.DTSTART, CalendarContract.Events.AVAILABILITY};
mCursor = getContentResolver().query(CalendarContract.Events.CONTENT_URI, COLS, null, null, null);
mCursor.moveToLast();
这非常有效,只是它似乎根据创建日历的时间而不是日期和时间返回日历事件。例如,如果我为2012年12月25日创建一个新事件,它将显示为最后一个结果

我的最终目标是找到在当前时间之前开始的第一个事件。例如,如果当前是上午8:00,我希望查找在上午8:00之前开始的第一个事件。然后我想检查该事件的持续时间,看看它是否是当前正在进行的事件

有没有一种简单的方法可以返回按日期和时间排序的查询,或者在查询结果后我必须执行排序?更好的是,有没有一种简单的方法可以在当前时间之前找到第一个事件?

也许是这样

    private Cursor mCursor = null;
    private static final String[] COLS = new String[]{CalendarContract.Events.TITLE, CalendarContract.Events.DTSTART, CalendarContract.Events.AVAILABILITY};
    mCursor = getContentResolver().query(CalendarContract.Events.CONTENT_URI, COLS, null, null, CalendarContract.Events.DTSTART + " ASC");
    mCursor.moveToLast();

另一种方式是这样的

Collections.sort(dateList, new Comparator<Date>(){
    public int compare(Date date1, Date date2){
        return date1.after(date2);
    }
});
Collections.sort(日期列表,新的比较器(){
公共整数比较(日期1,日期2){
返回日期1.之后(日期2);
}
});

谢谢,但它不喜欢
“DESC”
。我取出了它,它根据开始时间进行排序。因此,您可以从游标创建日期集合,并使用Collections.sort()Collections.sort(日期列表,新的Comparator(){public int compare(Date-date1,Date-date2){return date1.after(date2);})@杰克或者ASC,这个答案很有效。我只是简单地取出了“DESC”,它就工作了。