在做一个calendar相关开发中,调用getContentResolver().update遇到一个奇怪的问题,
如果更新的事件日期没有改变,更新后,在系统的Calendar中看不到该事件,而日期换成其他天,则能正常显示,有没有大虾遇到过类似的问题啊?update 代码如下:
public static void updateEvent(Context ct, CalendarEventElement ce,
String eventID) { Activity at = (Activity) ct;
String calId = "";
int result = -1;
Cursor userCursor = at.getContentResolver().query(
Uri.parse(calanderURL), null, null, null, null);
if (userCursor.getCount() > 0) {
userCursor.moveToFirst();
calId = userCursor.getString(userCursor.getColumnIndex("_id"));
}
ContentValues event = new ContentValues();
event.put("title", ce.title);
event.put("description", ce.description);
event.put("calendar_id", calId);
event.put("dtstart", ce.starttime);
event.put("dtend", ce.endtime);
event.put("hasAlarm", 1);
event.put("eventTimezone", "Asia/Shanghai"); String where = "_id = '" + eventID + "'";
result = at.getContentResolver().update(Uri.parse(calanderEventURL),event, where, null);
ContentValues values = new ContentValues();
values.put("minutes", ce.minutes);
values.put("method", 1);
where = "event_id = '" + eventID + "'";
result = at.getContentResolver().update(Uri.parse(calanderRemiderURL),
values, where, null);
}

解决方案 »

  1.   

    更新事件的时候同时更新一下日期吧,或者自己写一个update方法,在更新时间是调用一下吧
      

  2.   


    更新事件的时候,实际是直接对系统日历数据库的一条记录进行更新。
    如果重写update方法的话,是不是要修改系统日历的代码?
      

  3.   

    这个不需要,应该是触发条件引起的,例如以前是 事件变更&&日历变更  现在就改成 事件变更||日历变更