java – 如何删除日历中的特定事件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何删除日历中的特定事件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3425字,纯文字阅读大概需要5分钟。
内容图文
我想要做的是只删除我在日历中保存的内容而不是我已经在日历中显示的所有内容..因为我使用以下代码..但它将删除日历的所有内容..谁也可以告诉我如何防止这种情况..
Uri CALENDAR_URI = Uri.parse("content://calendar/events");
ContentResolver cr = getContentResolver();
cr.delete(CALENDAR_URI, null, null); // Delete all
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", this.title);
values.put("allDay", this.allDay);
values.put("dtstart", this.dtstart.toMillis(false));
values.put("dtend", this.dtend.toMillis(false));
values.put("description", this.description);
values.put("eventLocation", this.eventLocation);
values.put("visibility", this.visibility);
values.put("hasAlarm", this.hasAlarm);
cr.insert(CALENDAR_URI, values);
所以我想要的只是删除我提出的条目…
删除该事件
Uri EVENTS_URI = Uri.parse("content://com.android.calendar/" + "events");
ContentResolver cr = c.getContentResolver();
deleteEvent(cr, EVENTS_URI, 1);
private void deleteEvent(ContentResolver resolver, Uri eventsUri, int calendarId) {
Cursor cursor;
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();
}
解决方法:
从日历中读取数据后,试试这个..
将单个事件事件添加到日历
要向特定日历添加条目,我们需要使用ContentValues配置要插入的日历条目,如下所示:
ContentValues event = new ContentValues();
每个事件都需要绑定到特定的日历,因此您要设置的第一件事是将此事件插入到的日历的标识符:
event.put("calendar_id", calId);
然后,我们设置了一些有关事件的基本信息,包括字符串字段,例如事件标题,描述和位置.
event.put("title", "Event Title");
event.put("description", "Event Desc");
event.put("eventLocation", "Event Location");
有许多不同的选项可用于配置事件的时间和日期.
我们可以按如下方式设置事件开始和结束信息:
long startTime = START_TIME_MS;
long endTime = END_TIME_MS;
event.put("dtstart", startTime);
event.put("dtend", endTime);
如果我们要添加生日或假日,我们会将条目设置为全天活动:
event.put("allDay", 1); // 0 for false, 1 for true
此信息足以满足大多数条目的需要.但是,还有许多其他有用的日历条目属性.
例如,您可以将事件状态设置为暂定(0),确认(1)或取消(2):
event.put("eventStatus", 1);
您可以通过将其可见性设置为默认值(0),机密(1),私有(2)或公共(3)来控制谁可以查看此事件:
event.put("visibility", 0);
您可以通过将其透明度设置为opaque(0)或transparent(1)来控制事件是否消耗时间(可能有计划冲突).
event.put("transparency", 0);
您可以控制事件是否触发提醒警报,如下所示:
event.put(“hasAlarm”,1); // 0表示false,1表示true
正确配置日历事件后,我们就可以使用ContentResolver将新日历条目插入到日历事件的相应Uri中:
Uri eventsUri = Uri.parse("content://calendar/events");
Uri url = getContentResolver().insert(eventsUri, event);
对insert()方法的调用与Calendar内容提供程序联系,并尝试将该条目插入相应的用户Calendar.如果您导航到日历应用程序并启动它,您应该在相应的日历中看到您的日历条目.自“日历”同步以来,如果您在网络上使用Google日历,则还会在线查看“日历”条目.
删除活动
private int DeleteCalendarEntry(int entryID) {
int iNumRowsDeleted = 0;
Uri eventsUri = Uri.parse(getCalendarUriBase()+"events");
Uri eventUri = ContentUris.withAppendedId(eventsUri, entryID);
iNumRowsDeleted = getContentResolver().delete(eventUri, null, null);
Log.i(DEBUG_TAG, "Deleted " + iNumRowsDeleted + " calendar entry.");
return iNumRowsDeleted;
}
另请阅读此link以进行删除
内容总结
以上是互联网集市为您收集整理的java – 如何删除日历中的特定事件全部内容,希望文章能够帮你解决java – 如何删除日历中的特定事件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。