我添加了一个新日历:
ContentValues event2= new ContentValues();
event.put("name", "My calendar");
event.put("displayName", "My new calendar");
event.put("hidden",0);
Uri url2 = getContentResolver().insert(calendarUri, event);
当我列出所有日历时,会出现新的日历,但我的原生日历APP会崩溃,现在我无法使用新的日历!我在这里搜索了一下,并尝试了一些方法:
Uri uri1=ContentUris.withAppendedId(calendarUri, calId);
int url3 = getContentResolver().delete(uri1,"_id="+calId",projection);
int url2 = getContentResolver().delete(calendarUri,"_id=3",projection);
但总是显示错误:名称不能为空:null(投影是带有id和名称的数组字符串)
有什么想法吗?
答案 0 :(得分:0)
可能有点迟了但是:
Uri evuri = CalendarContract.Calendars.CONTENT_URI;
//substitue your calendar id into the 0
long calid = 0;
Uri deleteUri = ContentUris.withAppendedId(evuri, calid);
getActivity().getContentResolver().delete(deleteUri, null, null);
适合我。
或者,如果您不知道您的日历ID:
Uri evuri = CalendarContract.Calendars.CONTENT_URI;
Cursor result = getActivity().getContentResolver().query(evuri, new String[] {CalendarContract.Calendars._ID, CalendarContract.Calendars.ACCOUNT_NAME, CalendarContract.Calendars.CALENDAR_DISPLAY_NAME}, null, null, null);
while (result.moveToNext())
{
if(result.getString(2).equals("YOUR CALENDAR NAME"))
{
long calid = result.getLong(0);
Uri deleteUri = ContentUris.withAppendedId(evuri, calid);
getActivity().getContentResolver().delete(deleteUri, null, null);
}
}
当然,查找CalendarContract.Calendars.ACCOUNT_NAME对您来说可能是多余的,因此请将其删除。 (真的几乎没有任何开销)
答案 1 :(得分:0)
试试这个:
getContentResolver.delete(ContentUris.withAppendedId(CalendarContract.Calendars.CONTENT_URI, id),null,null);
其中id
是您要删除的日历的ID。
尚未测试过,但适合举办活动。