将Activity继承这个BaseFragmentActivity
解决办法就是,将你出问题的Fragment所在的Activity,来继承这个FragmentActivity,重写onActivityResult(),即可。
/** * 让子activity继承这个activity,Fragment去调用startActivityForResult,也可以收到onActivityResult * Created by can on 2017/12/15. */ public class MyBaseFragmentActivity extends FragmentActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //获取Fragment管理类 FragmentManager manager=getSupportFragmentManager(); //遍历Fragments for(int i=0;i<manager.getFragments().size();i++) { Fragment fragment=manager.getFragments().get(i); //fragment不为空就去调用onActivityResult() if(fragment!=null) callActivityResult(fragment,requestCode,resultCode,data); } } /** * 对所有子Fragment执行onActivityResult() */ private void callActivityResult(Fragment fragment,int requestCode,int resultCode,Intent data) { //调用每个Fragment的onActivityResult() fragment.onActivityResult(requestCode, resultCode, data); //获取子Fragment List<Fragment> childFragment = fragment.getChildFragmentManager().getFragments(); if(childFragment!=null) for(Fragment f:childFragment) if(f!=null) callActivityResult(f, requestCode, resultCode, data); } }