gpt4 book ai didi

android - 日历事件问题

转载 作者:行者123 更新时间:2023-11-29 22:20:22 27 4
gpt4 key购买 nike

实际上我陷入了一个大问题..我创建了一个应用程序,我可以从中将事件保存在我的设备日历中..现在当我将我的应用程序中的新事件保存在我的设备日历中时,它总是会删除这些事件以前通过我的应用程序保存并保存一个新事件等等..所以一切正常..现在最大的问题是删除它会删除设备日历中存在的所有日历事件,包括正在发生的事件通过我的应用程序保存..所以我想要的是只删除我的应用程序放置的事件,同时从我的应用程序插入新事件,这些事件不是已经存在的,也不是我在设备日历中直接分配的..所以任何人都可以吗帮我解决这个问题..我用来插入和删除的代码是..

    Resources res = c.getResources();

Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events");

Uri REMINDERS_URI = Uri.parse("content://com.android.calendar/" + "reminders");

ContentResolver cr = c.getContentResolver();

Uri uri= ContentUris.withAppendedId(EVENTS_URI, 1);
deleteEvent(cr, Resources res = c.getResources();

Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events");

Uri REMINDERS_URI = Uri.parse("content://com.android.calendar/" + "reminders");

ContentResolver cr = c.getContentResolver();

//Deleting event from device calendar before saving new event
deleteEvent(cr, EVENTS_URI, 1);

//saving new data to calendar
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", m_strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
values.put("hasAlarm", 1);
Uri event = cr.insert(EVENTS_URI, values);

values = new ContentValues();
values.put("event_id", Long.parseLong(event.getLastPathSegment()));
values.put("method", 1);
values.put("minutes", 10);
cr.insert(REMINDERS_URI, values);

删除事件的函数

private void deleteEvent(ContentResolver resolver, Uri eventsUri, int calendarId) 
{
Cursor cursor;
if (android.os.Build.VERSION.SDK_INT <= 7)
{
cursor = resolver.query(eventsUri, new String[]{ "_id" }, "Calendars_id=" + calendarId, null, null);
}
else
{
cursor = resolver.query(eventsUri, new String[]{ "_id" }, "calendar_id=" + calendarId, null, null);
}
while(cursor.moveToNext())
{
long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
resolver.delete(ContentUris.withAppendedId(eventsUri, eventId), null, null);
}
cursor.close();
}

最佳答案

您使用的代码正在删除每个事件:您需要保存您创建的事件的 ID,并且只删除该事件。当您这样做时:

cr.insert(REMINDERS_URI, values);

改成这样:

Uri u = cr.insert(REMINDERS_URI, values);

这将保存您创建的事件的 URI。然后,您可以将该 URI 传递到您的 deleteEvent 方法中,以仅删除该一个事件,而不是所有事件。

关于android - 日历事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com