Android 我能';t使用getSerializableExtra恢复日历

Android 我能';t使用getSerializableExtra恢复日历,android,android-intent,serializable,Android,Android Intent,Serializable,我在活动A中加入了额外内容: notificationIntent.putExtra(KEY_ID, id); notificationIntent.putExtra(KEY_CALENDAR, day); A.logCalendar("calendar: ", day); // the Calendar is not null at this point 我在活动B中获得额外信息: int id = intent.getIntExtra(Constantes.KEY_ID, 0); A.b(

我在活动A中加入了额外内容:

notificationIntent.putExtra(KEY_ID, id);
notificationIntent.putExtra(KEY_CALENDAR, day);
A.logCalendar("calendar: ", day); // the Calendar is not null at this point
我在活动B中获得额外信息:

int id = intent.getIntExtra(Constantes.KEY_ID, 0);
A.b("My id: " + id); // The id is recovery
Calendar time = (Calendar) intent.getSerializableExtra(Constantes.KEY_CALENDAR);
if (time == null)
    A.b("null calendar"); // The calendar is always null, WHY?

我做错了什么。提前感谢。

您无法序列化整个日历对象并使用额外的方式发送它。您只能发送原语、数组和字符串。你可能需要考虑像PARCELLABLE这样的选择。

你为什么要这么做?只需在每个活动中创建一个日历<代码>日历仅是日期和时间计算的辅助工具。如果您想传递一个时间点,请使用
java.util.Date
类或毫秒作为
long
。有时我们离树太近了,以至于看不到森林。谢谢我将使用带毫秒的long。