Android:如何将时间值从一个活动传递到另一个活动?

时间:2014-03-17 08:43:49

标签: android android-intent time

我的一项活动中有两个Time值,我将时间设置为当前时间,如下所示:

StartTime.setToNow();   
EndTime.setToNow();

我想将StartTimeEndTime的值传递给另一个活动,但我得到的只是1970年...这显然是错误的。

我正在传递数据Intent,如下所示:

 Intent intent1 = new Intent (Localisation.this, Quiz.class);
 intent1.putExtra("StartTime", StartTime.second);
 intent1.putExtra("EndTime", EndTime.gmtoff);
 startActivity(intent1);

你能告诉我如何正确地做到这一点吗?

2 个答案:

答案 0 :(得分:2)

我建议您使用第三方库来处理日期或时间对象的不同操作,而不是java.util.Calendar。 例如Joda Time。 此库中的DateTime对象实现了Serializable,因此您可以像这样传递值

DateTime dt = new DateTime(); 
Intent i = new Intent(this, SecondActivity.class); 
i.putExtra("date", dt); 
startActivity(i); 

第二个活动

Intent i = getIntent(); 
DateTime dt = (DateTime) i.getSerializableExtra("date");

使用Joda Time库,您可以获得两个时间对象和许多其他内容之间的差异。

答案 1 :(得分:0)

基于原始问题中添加的一些评论的示例:

首先Activity

Date date = StartTime;

Intent launch = new Intent(ActivityOne.this, ActivityTwo.class);
Bundle extras = new Bundle();
extras.putLong("start_time", date.getTime());
launch.putExtras(extras);

第二个Activity

Bundle extras = getIntent().getExtras();
Date date = new Date(extras.getLong("start_time"));