Fragment中的onActivityResult方法没有被调用
2017-07-03 13:12
337 查看
在Activity中嵌套Fragment使用时,Fragment中的onActivityResult却无法被调用
但是在Fragment中使用startActivityForResult能够成功,这是为什么?黑人问号??????
这是因为:在Fragment中使用startActivityForResult之后,onActivityResult的调用是从activity中开始的(即会先调用包裹fragment的Activity中的onActivityResult)。
如果是使用activity嵌套了fragment使用,可以这样解决:
1.在Fragment中使用startActivityForResult的时候,不要使用getActivity().startActivityForResult,而是应该直接使startActivityForResult()。
2.如果已经activity中用到了onActivityResult,那么activity中的onActivityResult一定要加上super.onActivityResult(requestCode,
resultCode, data)。
如果反之,那么onActivityResult只能够传递到activity中的,无法传递到Fragment中的。
如果遵照上面两条原则,那么,可以直接在Fragment中使用startActivityForResult和onActivityResult,和在activity中使用的一样,不收影响,且正常调用。
关于fragment嵌套fragment的情况,需要自定义fragmentActivity,这里就不说了。
但是在Fragment中使用startActivityForResult能够成功,这是为什么?黑人问号??????
这是因为:在Fragment中使用startActivityForResult之后,onActivityResult的调用是从activity中开始的(即会先调用包裹fragment的Activity中的onActivityResult)。
如果是使用activity嵌套了fragment使用,可以这样解决:
1.在Fragment中使用startActivityForResult的时候,不要使用getActivity().startActivityForResult,而是应该直接使startActivityForResult()。
2.如果已经activity中用到了onActivityResult,那么activity中的onActivityResult一定要加上super.onActivityResult(requestCode,
resultCode, data)。
如果反之,那么onActivityResult只能够传递到activity中的,无法传递到Fragment中的。
如果遵照上面两条原则,那么,可以直接在Fragment中使用startActivityForResult和onActivityResult,和在activity中使用的一样,不收影响,且正常调用。
关于fragment嵌套fragment的情况,需要自定义fragmentActivity,这里就不说了。
相关文章推荐
- fragment的onActivityResult没有调用的解决方法
- 关于fragment里面调用startActivityForResult,onActivityResult没有反应的学习
- Fragment中的onActivityResult方法不调用
- onActivityResult在Fragment没有回调的解决方法
- 安卓开发没有关闭界面就调用了onActivityResult方法?onActivityResult方法Intent-data总是null
- Fragment调用Activity的onActivityResult方法
- 多Fragment嵌套是如何调用父Fragment的onActivityResult()方法
- Android Fragment startActivityForResult没有调用onActivityResult
- Andriod中多层fragment相套时onActivityResult()方法不被调用的原因
- 关于在Fragment中使用startActivityForResult();方法后onActivityResult()未被调用的解决方案
- Fragment onActivityResult方法问题
- Activity不调用onActivityResult()方法的原因
- Fragment与宿主Activity都调用startActivityForResult,onActivityResult不执行解决办法
- 关于Fragment 不响应 onActivityResult方法
- Android中调用本机camera,遇到无法回调onActivityresult方法
- Android OnActivityResult()方法的不调用
- Activity不调用onActivityResult()方法的原因
- 嵌套Fragment接收不到OnActivityResult()方法的回调,怎么办?(仔细看红字解决)
- Fragment+adapter OnActivityForResult方法被Activity拦截解决
- Fragment中 onActivityResult不响应 + 有关onActivityResult提前调用的问题