如何在android中获取两个日历的所有事件
在我的应用程序中,我使用了两个日历,比如CalendarContract.Events.calendar_ID=1的calendar business和CalendarContract.Events.calendar_ID=2的calendar privat 如果用户选择在我的应用程序中查看两个日历的事件,我需要将两个日历的事件放到光标中 我已经在下面的代码中尝试过了,在我的选择中,我将两个带有OR的CalendarID放入其中,但这显示了数量惊人的事件 所以我的问题是,如何获得包含两个日历事件的游标如何在android中获取两个日历的所有事件,android,calendar,calendarcontract,Android,Calendar,Calendarcontract,在我的应用程序中,我使用了两个日历,比如CalendarContract.Events.calendar_ID=1的calendar business和CalendarContract.Events.calendar_ID=2的calendar privat 如果用户选择在我的应用程序中查看两个日历的事件,我需要将两个日历的事件放到光标中 我已经在下面的代码中尝试过了,在我的选择中,我将两个带有OR的CalendarID放入其中,但这显示了数量惊人的事件 所以我的问题是,如何获得包含两个日历事件
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" );
你有没有试过用括号括起来
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中的所有事件
我不完全确定,但也许值得一试。
我希望这个答案能有所帮助。祝你今天愉快