0

私のアプリでは、2つのカレンダーを使用CalendarContract.Events.CALENDAR_ID = 1していCalendarContract.Events.CALENDAR_ID = 2ます.

ユーザーがアプリで両方のカレンダーのイベントを表示することを選択した場合、何らかの方法で両方のカレンダーのイベントをカーソルに取得する必要があります。

次のコードのように試してみました。ここでは、両方の calendarIds を で選択しましたORが、信じられないほどの数のイベントが表示されます。

私の質問は、2 つのカレンダーのイベントでカーソルを取得する方法です。

String[] projection = { CalendarContract.Events._ID,
            CalendarContract.Events.CALENDAR_ID,
            CalendarContract.Events.TITLE,
            CalendarContract.Events.DESCRIPTION,
            CalendarContract.Events.DTSTART, CalendarContract.Events.DTEND,
            CalendarContract.Events.DURATION,
            CalendarContract.Events.DELETED };

SelectionArgs = new String[] { strCalendarStart,
                        strCalendarStop, "0",
                        intPrivateCalendarId.toString(),
                        intBeruflicheCalendarId.toString() };

selection = "((" + CalendarContract.Events.DTSTART + " >= ?) AND (" 
                        + CalendarContract.Events.DTEND + " <= ?)AND " + "("
                        + CalendarContract.Events.DELETED + " = ?) AND"
                        + "(" + CalendarContract.Events.CALENDAR_ID
                        + " = ?) OR" + "("
                        + CalendarContract.Events.CALENDAR_ID + " = ?))";

Cursor curCalendar = cr.query( CalendarContract.Events.CONTENT_URI,
                               projection, selection, SelectionArgs,
                               CalendarContract.Events.DTSTART + " ASC" );
4

1 に答える 1

0

このように括弧を追加しようとしましたORか?

selection = "((" + CalendarContract.Events.DTSTART + " >= ?) AND (" 
                        + CalendarContract.Events.DTEND + " <= ?)AND " + "("
                        + CalendarContract.Events.DELETED + " = ?) AND"
                        + "((" + CalendarContract.Events.CALENDAR_ID
                        + " = ?) OR" + "(" 
                        + CalendarContract.Events.CALENDAR_ID + " = ?)))";

の優先度が低いと思うのでOR、コードはカレンダー 1 から削除されていないイベントなどを返し、カレンダー 2 からすべてのイベントを返します。

完全にはわかりませんが、試してみる価値があるかもしれません。この回答がお役に立てば幸いです。良い1日を。

于 2015-07-15T16:23:09.613 に答える