前言
在 Fragment的使用中,我们有时会用到 startActivityForResult 用于数据的回传,当Activity 中嵌套了 Fragment,Fragment 怎么接收到回传的值呢?它和 activity间值得回传有什么区别呢?今天就来具体讲讲 Fragment与 startActivityForResult 的使用。
今天涉及的内容有:
- activity 与 activity 间 startActivityForResult 回传
- fragment 接收 activity 的 startActivityForResult 回传
- startActivityForResult 回传值不同的分析 及 Fragment接收回传值的时机
- 得出结论
- 效果图和项目结构图
先来波效果图:
activity间跳转,接收回调
fragment跳转activity,接收回调
前置
这里我们要探讨的主要是当activity与activity间进行startActivityForResult 回传时,activity及fragment 中 onActivityResult 接收值的情况。
我们的demo场景是,在MainActivity中有一个加载FragmentOne的按钮,然后还有一个跳转TestActivity的按钮,在FragmentOne中有一个跳转TestActivity的按钮,然后在TestActivity中有一个关闭并回传值的按钮。
一. activity 与 activity 间 startActivityForResult 回传
首先看MainActivity界面如下:
界面中,左边一个按钮是加载FragmentOne,右边是跳转TestActivity。然后我们在MainActivity中重写 onActivityResult 方法,并打印 requestCode 和 resultCode,如下: