extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm=getSupportFragmentManager();
Fragment fragment=fm.findFragmentById(R.id.fragment_container);
if (fragment==null){
fragment=new MainFragment();
fm.beginTransaction()
.add(R.id.fragment_container,fragment)
.commit();
}
}
}
6.运行结果如下。
注意现在的时间点
点击按钮
更改一下时间点
按钮ok后时间改变了!
7.总结一下
1. 传递数据给DatePickerFragment
- 要传递crime日期给DatePickerFragment,需将它保存在DatePickerFragment的argument bundle中。
这样,DatePickerFragment就能直接获取它。
- 创建和设置fragment argument通常是在newInstance()方法中完成的(代替fragment构造方法)。
2. 返回数据给MainFragment
- 设置目标fragment。
类似于activity间的关联,可将MainFragment设置成DatePickerFragment的目标fragment。这样,在MainFragment和DatePickerFragment被销毁并重建后,操作系统会重新关联它们。 调用以下方法可建立这种关联:
public void setTargetFragment(Fragment fragment,int requestCode)
- 传递数据给目标fragment
建立MainFragment与DatePickerFragment之间的联系后,需要将数据回传给MainFragment。回传日期将作为extra附加给Intent。
|