通常会碰到在FragmentParent中创建另外一个FragmentSon, 最后还需要从FragmentSon中传递数据回FragmentParent的情况, 在这里,官方有一种推荐使用方式:
代码如下:
//(FragmentParent.java)
//其中两个参数:this:表示当前的fragmentParent对象, 第二个是请求码
fragmentSon.setTargetFragment(this, 0);
//然后在FragmentParent中复写onActivityResult方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode != Activity.RESULT_OK){
return;
}
if(requestCode == 0){
//做操作
}
}
//(FragmentSon.java)
//在FragmentSon做的操作如下:
if(getTargetFragment() == null){
return;
}
Intent intent = new Intent();
Bundle bundle = new Bundle();
intent.putExtras(bundle);
getTargetFragment().onActivityResult(0, Activity.RESULT_OK, intent);
sp: 这是记录文, 内容来自《Android权威编程指南》(第三版)P199