我对日历有点陌生。listview
任何人都可以建议我如何从默认日历(不是谷歌日历或任何其他唯一默认日历)中获取事件(例如生日/会议提醒)并将其显示recyclerview
在我们的应用程序中吗?
问问题
558 次
1 回答
0
这个SO question描述了读取和写入日历。您需要阅读日历的关键信息是:
Uri uri = CalendarContract.Calendars.CONTENT_URI;
String[] projection = new String[] {
CalendarContract.Calendars._ID,
CalendarContract.Calendars.ACCOUNT_NAME,
CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,
CalendarContract.Calendars.NAME,
CalendarContract.Calendars.CALENDAR_COLOR
};
Cursor calendarCursor = managedQuery(uri, projection, null, null, null);
然后你需要从游标中提取数据:
ArrayList<String> ids = new ArrayList<String>();
try {
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String id= cursor.getString(0);
calendars.add(id);
}
}
} catch (AssertionError ex) { /*TODO: log exception and bail*/ }
然后你有 ids 并且需要查询每个 ids 的事件。这在此SO question的已接受答案中进行了描述。这个github存储库也有一个解决方案。这些方法中的大多数仅适用于高于 4.2 的 Android 版本。
于 2017-02-24T06:14:33.937 回答