Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从意图中获得额外的约会?_Java_Android_Date_Android Intent - Fatal编程技术网

Java 如何从意图中获得额外的约会?

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,我添加的一个额外项是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.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
更受欢迎。