Android的Fragment中onActivityResult不被调用解决方案

来源:互联网 发布:谢谢爷爷 知乎 编辑:程序博客网 时间:2024/05/18 19:22
Fragment中的onActivityResult不被调用,有几种情况,请大家一一排查。
 
1.检查该Fragment所属的Activity中,是否重写了onActivityResult方法。
如果是该种情况,请确保写了super.onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
//Activity中相关处理代码
}
}
 
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
0 0
原创粉丝点击