Android:如何通过编程将重复事件更改为一次性事件
您好,我使用的是日历合约API,只支持API级别14及以上,所以我不关心旧版本的支持 我在将重复事件更新为单次事件时遇到问题。 我无法在更新事件时给出Android:如何通过编程将重复事件更改为一次性事件,android,android-calendar,Android,Android Calendar,您好,我使用的是日历合约API,只支持API级别14及以上,所以我不关心旧版本的支持 我在将重复事件更新为单次事件时遇到问题。 我无法在更新事件时给出事件。DTEND值,错误显示为事件。持续时间和事件。DTEND不能同时出现 我没有传递Events.DURATION但Android不允许更新事件,但是如果我像deviceCalendarValues.put(Events.DURATION,”)一样传递Events.DURATION为空以及事件的正确值。DTEND。这将导致更复杂的情况,例如将添加
事件。DTEND
值,错误显示为事件。持续时间和事件。DTEND
不能同时出现
我没有传递Events.DURATION
但Android不允许更新事件,但是如果我像deviceCalendarValues.put(Events.DURATION,”)一样传递Events.DURATION
为空
以及事件的正确值。DTEND
。这将导致更复杂的情况,例如将添加两个事件一个将持续时间设为零,并使开始和结束时间相同。其他事件将与日历同步后(我将事件添加到google日历中,它与其他可用日历一起列出)的给定数据一起出现。数据正确的事件将被删除,错误的事件将存在
还有一件事我正在更新Events.CONTENT\u URI
like
updateUri = ContentUris.withAppendedId(Events.CONTENT_URI, event_dao.getI_EventID());
updatedRowCount = activity.getContentResolver().update(updateUri,
deviceCalendarValues, null, null);
这里出了什么问题?将重复事件更改为单一事件的正确方法是什么
ContentValues values = new ContentValues();
if(this.id>0)
values.put(Events._ID, this.id);
values.put(Events.DTSTART, this.startMillis);
if(title!=null)
values.put(Events.TITLE, title.toString());
if(description!=null)
values.put(Events.DESCRIPTION, description.toString());
values.put(Events.CALENDAR_ID, SharedPreferenceManager.getSharedInstance().getCalendarId());
values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
if(location!=null)
values.put(Events.EVENT_LOCATION, location.toString());
values.put(Events.ALL_DAY, allDay ? 1 : 0);
if(!TextUtils.isEmpty(rule)) {
values.put(Events.RRULE, rule);
values.put(Events.DURATION, getDuration());
values.put(Events.DTEND, (Long) null);
}else {
values.put(Events.DTEND, endMillis);
}
values.put(Events.ACCESS_LEVEL, 0);// Default (0), Private (2), Public (3)
values.put(Events.EVENT_COLOR_KEY, AppUtility.getColorKeyFromColorCode(color));
如果是重复事件,则应将TEND作为null传递