我知道之前使用过相同的标题,但具体问题(和答案)与ContentValues类一起使用,即Api等级14+;我的程序使用最低Api等级8.我使用Intent with putextra将我的值添加到日历中:
Calendar beginTime = Calendar.getInstance();
beginTime.set(year, month, day, fromHour, fromMin, 0);
Calendar endTime = Calendar.getInstance();
endTime.set(year, month, day, toHour, toMin, 0);
long startMillis = beginTime.getTimeInMillis();
long endMillis = endTime.getTimeInMillis();
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", startMillis);
intent.putExtra("allDay", false);
intent.putExtra("endTime", endMillis);
intent.putExtra("title", strSelected);
intent.putExtra("description", strSelected+" for "+minDiff+
" minutes burning "+calorieBurned+" calories");
intent.putExtra("eventLocation", "Gym");
startActivity(intent);
年,月,日,fromHour,fromMin等是上述代码中定义的变量。除了结束时间之外,日历适用于所有这些值,无论开始时间是什么,它都在开始时间后一小时。当我将startMillis与endMillis进行比较时,两者都是正确的(因此endMillis距离startMillis超过1小时),因此正确的结束日期将传递给日历,但日历似乎没有正确调整。
如果我删除了intent.putExtra(“endTime”,endMillis); 完全代码,开始日期保持正确,但结束日期恢复为默认值(1970年代)。因此,日历正在识别代码行,但只是没有使用正确的endMillis值,或者仅停留在显示开始日期之后的小时。
即使我在开始时间后不到一小时输入结束时间,日历仍会在开始日期后一小时显示。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
这似乎只是旧Android手机中的一个错误;我买了一部新的Android手机,无需更改代码即可完美运行。
我认为除了更新Android操作系统之外,还有一个问题的解决方案,因为这是一个不可避免的错误。