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



我正在尝试返回按日期和时间排序的日历事件的查询,以便可以对它们进行迭代。我是这样查询的:

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

最新更新