我的一项活动中有两个Time
值,我将时间设置为当前时间,如下所示:
StartTime.setToNow();
EndTime.setToNow();
我想将StartTime
和EndTime
的值传递给另一个活动,但我得到的只是1970年...这显然是错误的。
我正在传递数据Intent
,如下所示:
Intent intent1 = new Intent (Localisation.this, Quiz.class);
intent1.putExtra("StartTime", StartTime.second);
intent1.putExtra("EndTime", EndTime.gmtoff);
startActivity(intent1);
你能告诉我如何正确地做到这一点吗?
答案 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"));