我在我正在开发的项目中得到了这段代码,在 public Loader onCreateLoader(int id,Bundle args)的实现中:
Uri baseUri=Events.CONTENT_URI;
final String[] EVENT_PROJECTION = new String[] {Events.CALENDAR_ID,
Events.ORGANIZER,
Events.TITLE,
Events.EVENT_LOCATION,
Events.DTSTART,
Events.DTEND,
Events.EVENT_TIMEZONE,
Events.EVENT_END_TIMEZONE,
Events.DURATION,
Events.ALL_DAY,
Events.RRULE,
Events.RDATE,
};
String selection = "((" + "this.isCalendarAvailable("+Events.CALENDAR_ID+") = ?)) AND ("
+ "TimeUnit.MILLISECONDS.toDays(Long.parseLong("+Events.DTSTART+",10)) = ?))";
String[] selectionArgs = new String[]{"true",String.valueOf(selectedDate.getTimeInMillis())};
return new CursorLoader(this,baseUri,EVENT_PROJECTION, selection, selectionArgs, Events.DTSTART);
我想获取在可用日历上找到的所有事件的详细信息(在EVENT_PROJECTION中指定)(根据布尔方法isCalendarAvailable)并从selectedDate开始。
我尝试通过如上所述初始化字符串选择来做到这一点,但似乎由于误解了应该写入该字符串的方式而无法实现。
我已经知道我可以使用“AND”,“OR”和“=?”。 但是有没有其他语法规则可以将字符串用作cursorLoader构造函数的参数? 如果没有,是否有任何方法可以根据某些方法从Uri中选择我需要的东西(如上所述)?
提前多多感谢