Android 从意图中返回额外内容
我很难从一个意图中返回额外的东西。我正在发送一个日期类型的数据对象,在我的发送活动中,我有以下内容:Android 从意图中返回额外内容,android,date,android-intent,Android,Date,Android Intent,我很难从一个意图中返回额外的东西。我正在发送一个日期类型的数据对象,在我的发送活动中,我有以下内容: Intent intent = getIntent(); intent.putExtra("SELECTED_DATE",SelectedDate); setResult(RESULT_OK,intent); finish(); 在我的接受活动中 protected void onActivityResult(int requestCode, int resultCode, Intent da
Intent intent = getIntent();
intent.putExtra("SELECTED_DATE",SelectedDate);
setResult(RESULT_OK,intent);
finish();
在我的接受活动中
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && data != null){
selectedDate = new Date(data.getExtras().getLong("SELECTED_DATE"));
displayDate(selectedDate);
}
}
无论发送的日期是什么,在接收活动中,我收到的是1969年12月31日星期三19:00:00 EST。当我调试它时,putExtra命令中设置了正确的日期值,我可以在mMap值中看到意图的值。在接收端,意图显示“有额外内容”,但mMap=null
我使用类似的代码返回字符串类型,没有问题。是否需要返回其他日期类型?如果将
日期
对象作为参数传递,则将设置一个可序列化的
额外值。如果要检索long
,则需要将额外的设置为long
,因此:
intent.putExtra("SELECTED_DATE",SelectedDate.getTime());
Intent有许多
putExtra()
方法,您在那里使用的是putExtra(String,Serializable)
,因为Date
实现了Serializable
。使用键(“SELECTED_DATE”
)检索值时,对象的类型也必须相同。如果将日期
对象作为参数传递,则将设置一个可序列化的额外参数。如果要检索long
,则需要将额外的设置为long
,因此:
intent.putExtra("SELECTED_DATE",SelectedDate.getTime());
Intent有许多putExtra()
方法,您在那里使用的是putExtra(String,Serializable)
,因为Date
实现了Serializable
。使用键(“SELECTED_DATE”
)检索值时,对象的类型也必须相同。您正在将日期对象作为参数传递给intent,并尝试使其返回
基本上,您必须发送long或String,并在返回活动中返回相同的内容
发送时
接收时
您正在将日期对象作为参数传递给intent,并尝试将其返回到指定的时间
基本上,您必须发送long或String,并在返回活动中返回相同的内容
发送时
接收时
什么是mMap。mMap在哪里?这么长的时间你得到了什么价值?我认为你的代码唯一可能出错的地方是你的
SelectedDate
类型不长。因此getLong
返回null。可能是getString
或。。。救命啊!什么是mMap。mMap在哪里?这么长的时间你得到了什么价值?我认为你的代码唯一可能出错的地方是你的SelectedDate
类型不长。因此getLong
返回null。可能是getString
或。。。救命啊!谢谢,我曾读到我应该把时间花得很长,但我没有意识到我必须使用getTime()函数来做这件事。谢谢,我曾读到我应该把时间花得很长,但我没有意识到我必须使用getTime()函数来做这件事。
selectedDate = new Date(data.getExtras().getLong("SELECTED_DATE"));