如何使用Bundle ???传递TIME的实例(对象)
可能是一个简单的问题,但我需要一个精确的答案......
DATE date=new DATE();
答案 0 :(得分:13)
日期是可序列化的,因此您可以使用get/putSerializable
:
MyFragment fragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(MyFragment.DATE_KEY, new Date());
fragment.setArguments(bundle);
在MyFragment
:
public void onViewStateRestored(Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
Bundle bundle = savedInstanceState != null ? savedInstanceState : getArguments();
Date startTime = (Date) bundle.getSerializable(MyFragment.DATE_KEY);
this.time = startTime;
}
public void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putSerializable(MyFragment.DATE_KEY, this.time);
}
答案 1 :(得分:8)
这段代码是近似的,因为我是从内存中写的。
Intent mIntent = new Intent(ActivityA.this, ActivityB.class);
mIntent.putLong(KEY, getTimeMilliseconds());
startactivity(mIntent);
然后在ActivityB的onCreate中:
Bundle mBundle = getItent().getExtras();
Long time = mBundle.getLong(KEY);
注意:
putLong / getLong可以应用于多种类型的String,int ...
如果要将其应用于自定义对象,则应该创建该对象 实现Parcelable。
答案 2 :(得分:2)
在Bundle中传递代表您的日期的长值,例如long time = new Date()。getTime();