首页 > 代码库 > Android 在Fragment中执行onActivityResult不被调用的简单解决方法
Android 在Fragment中执行onActivityResult不被调用的简单解决方法
在Android开发中,我们经常会用到FragmentActivity下嵌套多个Fragment,但是在开发过程中会发现在嵌套的Fragment中使用onActivityResult回调方法没有被执行。
网上也有很多解决方法,但是说的都比较麻烦,所以今天给大家推荐一种超简单的用法,
在Fragment和FragmentActivity中都要重写onActivityResult方法,并且要保证两者的请求码或者结果码一致。代码如下:
在FragmentActivity中
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(resultCode){ case 1://该结果码要与Fragment中的一致 //我这里使用的是根据结果码获取数据,然后加上下面一句代码,其 //他的什么都不用做 super.onActivityResult(requestCode,resultCode,data); break; case 2: super.onActivityResult(requestCode,resultCode,data); break; ...... } }
在Fragment中
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (resultCode){ case 1://该结果码与FragmentActivity中是保持一致的 //在这里获取你需要的数据 break; case 2: break; } }
综上所述要解决在Fragment中使用onActivityResult不被调用的问题,只需要做到在Fragment和FragmentActivity中同时重写onActivityResult方法,并且要保证所使用的请求码或者结果码一致就行了。
是不是很简单,有需要的朋友可以参考一下。
Android 在Fragment中执行onActivityResult不被调用的简单解决方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。