Вопрос

Я пытаюсь вернуть запрос календарных событий, отсортированных по дате и времени, чтобы я мог пройти через них.Я запросил это так:

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

Это работает отлично, за исключением того, что он, кажется, возвращает события календаря на основе, когда он был создан, а не по дате и времени.Например, если я создаю новое событие на 25 декабря 2012 года, он появится как последний результат.

Моя конечная цель - это то, что я хотел бы найти первое событие, которое начинается до текущего времени.Например, если в настоящее время 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);
        }
      });
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top