sub*_*n90 3 datetime android bundle android-intent
如何使用Bundle传递TIME的实例(对象)???
可能是一个简单的问题,但我需要一个精确的答案......
DATE date=new DATE();
Run Code Online (Sandbox Code Playgroud)
Chr*_*lay 13
日期是可序列化的,因此您可以使用get/putSerializable
:
MyFragment fragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(MyFragment.DATE_KEY, new Date());
fragment.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)
在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);
}
Run Code Online (Sandbox Code Playgroud)
这段代码是近似的,因为我是从内存中写的.
Intent mIntent = new Intent(ActivityA.this, ActivityB.class);
mIntent.putLong(KEY, getTimeMilliseconds());
startactivity(mIntent);
Run Code Online (Sandbox Code Playgroud)
然后在ActivityB的onCreate中:
Bundle mBundle = getItent().getExtras();
Long time = mBundle.getLong(KEY);
Run Code Online (Sandbox Code Playgroud)
注意 :
putLong/getLong可以应用于多种类型的String,int ...
如果要将其应用于自定义对象,则应使该对象实现Parcelable.
归档时间: |
|
查看次数: |
6582 次 |
最近记录: |