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

时间:2014-04-13 13:10:10

标签: android google-calendar-api android-calendar

我正在尝试返回按日期和时间排序的Calendar事件查询,以便我可以遍历它们。我这样问过它:

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之前开始的第一个事件。我想检查该事件的持续时间,看看它是否是当前正在进行的事件。

是否有一种简单的方法可以返回按日期和时间排序的查询,还是在查询结果后必须实现排序?更好的是,有一种简单的方法可以在当前时间之前找到第一个事件吗?

2 个答案:

答案 0 :(得分:1)

也许这个?

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

答案 1 :(得分:0)

另一种方式

Collections.sort(dateList, new Comparator<Date>(){
           public int compare(Date date1, Date date2){
          return date1.after(date2);
        }
      });