关于这个问题,最近困惑好多天,网上给的方法都试了,却行不通,最后仔细调试,发现是调用父类的onActivityResult时候参数出错。现在总结一下fragment和onActivityResult的关系:
http://blog.csdn.net/wodetiantang007/article/details/8603083
1.如果在fragment中直接调用startActivityForResult,那么需要在host Activity中的onActivityResult中调用Super.onActivityResult,这样如果在该方法中未找到对应的处理方法,那么会调用Fragment中的onActivityResult根据请求码/结果码进行相应的处理。(该情况下host Activity中获得的请求码/结果码不同于Fragment中发出的请求码/结果码数值)
2.如果在fragment中调用getActivity().startActivityForResult,那么需要在host Activity中的onActivityResult中可直接根据Fragment中发出的请求码/结果码进行处理,如果要对Fragment进行修改,可在Fragment中定义对外的方法,在onActivityResult 中直接调用即可。。(该情况下host Activity中获得的请求码/结果码与Fragment中发出的请求码/结果码数值相同)
http://blog.csdn.net/shuaihj/article/details/46663109
3.在一种特殊情况下,就是Fragment中嵌套Fragment,那么情况比较复杂,可以自定义类继承FragmentActivity,再对其进行相应的操作,我就不详细写了,直接将对应的文章Copy过来。