主要描述:项目需要用到,一个activity中包含一个主fragment,而主fragment包含一个viewpager,viewpager中有三个fragment可以切换:
解决过程中的坑:因为网上查询到在activity中重写onActivityResult的方法进行事件分发,后来发现因为activity中包含一个主fragment,因此分发失败。
1、其中第一个fragment有打开上传图片的activity的操作,所以在第一个fragment重写了onActivityResult;
2、而第三个fragment启动ping++的支付activity,而第三个fragment重写的onActivityResult不起作用。
解决办法:如下(重点是onActivityResult的分发)
在ViewPager里面,你只需要在根Fragment(记得是根:也就是我前面描述提到的主fragment)里面添加 如下代码就可以了
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
List frags = getChildFragmentManager().getFragments();
if (frags != null) {
for (Fragment f : frags) {
if (f != null)
f.onActivityResult(requestCode,resultCode,data);
}
}
}