Android-Fragment 的 onActivityResult 收不到结果
经常会看见Activity嵌套Fragment中,从Fragment打开另一个Activity,
并重写Activity与Fragment的onActivityResult()方法时,发现该Fragment的onActivityResult()方法不执行,
而执行Activity的onActivityResult()方法.究其原因,就是打开另一个Activity的方式不对.
在Activity中,有activity.startActivityForResult(intent, requestCode);
在Fragment中,同样也有f.startActivityForResult(intent, requestCode);
也就是说 谁打开就调用谁的onActivityResult();
–
今天在做一个从相册选择图片作为头像的功能,遇到了这个问题.
我的解决方法很简单:在Fragment 跳转相册或者相机的时候,不要用
activity.startActivityForResult(intent, requestCode)
可以把该Fragment的对象传过去,这样跳转
f.startActivityForResult(intent, requestCode);
这样就可以在 Fragment 的onActivityResult 接受结果了,网上也有很多解决方法,目测这是最金蛋的一个了,亲测可用.
版权声明
本文仅代表作者观点,不代表博信信息网立场。