Java Android日历意图事件总是在开始后一小时结束,API级别为8+;
我知道这个标题以前也用过,但具体的问题(和答案)用于ContentValues类,即Api级别14+;我的程序至少使用8级Api。我使用Intent和putextra将我的值添加到日历中:Java Android日历意图事件总是在开始后一小时结束,API级别为8+;,java,android,android-intent,calendar,Java,Android,Android Intent,Calendar,我知道这个标题以前也用过,但具体的问题(和答案)用于ContentValues类,即Api级别14+;我的程序至少使用8级Api。我使用Intent和putextra将我的值添加到日历中: Calendar beginTime = Calendar.getInstance(); beginTime.set(year, month, day, fromHour, fromMin, 0); Calendar endTime =
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值,或者只能显示开始日期后的小时
即使输入的结束时间在开始时间后不到一小时,日历仍会在开始日期后一小时显示
任何帮助都将不胜感激。谢谢。这似乎只是旧版安卓手机的一个bug;我买了一部新的安卓手机,它在不改变代码的情况下工作得很好
我认为除了更新Android操作系统之外,这个问题没有解决办法,因为这是一个不可避免的错误。那么,这个问题是否发生在运行API 8的设备上?(2.2)或者它发生在运行更高版本Android的设备上。如果您更改此
intent.putExtra(“全天”,false),会发生什么情况代码>此intent.putExtra(“全天”,真)代码>?NanaGeek-我的设备是API 10,但我的MinSDK版本是8。Artoo Detoo-如果我将“allDay”更改为true,则From和to设置为全天,并且选中了“All day”单选项。