I am using the Android calendar. How can I remove a calendar event using code? Is it possible?
For clarification, I would like to mention that I don't wan开发者_JAVA技巧t a sync process or want to remove events using gdata api.
I only want to remove a local calendar event.
Try this to delete the event using Uri of the event id.
Uri uri='URI OF THE EVENT';
getContentResolver().delete(uri, null, null);
A short way:
Uri eventUri = Uri.parse("content://calendar/events"); // or "content://com.android.calendar/events"
Cursor cursor = contentResolver.query(eventUri, new String[]{"_id"}, "calendar_id = " + calendarId, null, null); // calendar_id can change in new versions
while(cursor.moveToNext()) {
Uri deleteUri = ContentUris.withAppendedId(eventUri, cursor.getInt(0));
contentResolver.delete(deleteUri, null, null);
}
There is no such concept as "remove local calendar's event":
- There is no "local calendar". There is, at most, a cached representation of the user's Google Calendars.
- The Calendar application is not part of the SDK
Though it is not part of the SDK you can access it, but access it at your own risk since it is not supported. A good tutorial that I followed are these links:
http://www.developer.com/ws/article.php/3850276/Working-with-the-Android-Calendar.htm (dead link)
http://jimblackler.net/blog/?p=151&cpage=2#comments
http://android-codes-examples.blogspot.com/2011/02/insertion-and-deletion-of-calendar.html
http://hanscappelle.blogspot.com/2011/03/android-calendar-api-glitches.html
some good sample code: http://pastebin.com/jpnqTp1n
精彩评论