天天看点

Fragment中的onActivityResult不被调用

1.检查该Fragment所属的Activity中,是否重写了onActivityResult方法。

如果是该种情况,请确保写了super.onActivityResult

2.检查Fragment中的startActivityForResult的调用方式。

请确保不要使用getActivity().startActivityForResult方法,而是要直接使用startActivityForResult。

3.如果以上两方面都没能解决问题,很可能是如下情况了,略有复杂:

该情况是在support library中使用了Nested Fragment,就是说在Fragment中进行了嵌套,比如用ViewPager展示Fragment等情况。这可以算Google的一个Bug,具体可参见这篇博客:

http://blog.shamanland.com/2014/01/nested-fragments-for-result.html

解决方案:

最好的方式是写一个BaseActivity继承FragmentActivity,重写onActivityResult方法,你用到的Activity都继承BaseActivity来做。BaseActivity具体实现: