Java 如何从意图中获得额外的约会?
我正在打包一个intent,我添加的一个额外项是date对象,如下所示:Java 如何从意图中获得额外的约会?,java,android,date,android-intent,Java,Android,Date,Android Intent,我正在打包一个intent,我添加的一个额外项是date对象,如下所示: intent.putExtra(DATE_EXTRA, t.getDate()); this.date = new Date(intent.getExtras().getString(DATE_EXTRA)); 后来,当我读到这些额外的内容时,我试着像这样获得日期: intent.putExtra(DATE_EXTRA, t.getDate()); this.date = new Date(intent.getExt
intent.putExtra(DATE_EXTRA, t.getDate());
this.date = new Date(intent.getExtras().getString(DATE_EXTRA));
后来,当我读到这些额外的内容时,我试着像这样获得日期:
intent.putExtra(DATE_EXTRA, t.getDate());
this.date = new Date(intent.getExtras().getString(DATE_EXTRA));
但是,这会返回一个关于字符串为空的错误。我不认为上面的方法是正确的,因为我不是在寻找字符串,但是我在任何地方都找不到intent.getDateExtra()
方法。我该怎么办
我知道日期传递正确,因为我可以在调试时看到它:
更换:
this.date = new Date(intent.getExtras().getString(DATE_EXTRA));
与:
看看这是否有帮助。另一个解决方法是传递日期的长值:
intent.putExtra(DATE_EXTRA, t.getDate().getTime());
....
this.date = new Date(intent.getLongExtra(DATE_EXTRA, 0)); //0 is the default value
科特林的安全通道:
intent.putExtra("MOVE_DATE", date)
并通过检查密钥和空检查以安全的方式读取:
val moveDate: Date?
intent?.apply {
if (hasExtra("MOVE_DATE")) {
moveDate = getSerializableExtra("MOVE_DATE") as? Date
moveDate?.let { print(it) }
}
}
奇怪的是,当我可以调用getString、getDouble、getLong等时,你可以额外添加一个日期,但不能调用
getDateExtra
。@McAdam331:“你是天赐之物”--你心中有一个相当不寻常的神。:-)“当我可以调用getString、getDouble、getLong等时”-double和long
是原语,String
比Date
更受欢迎。