首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用startActivityForResult返回数据到前一个Activity(附源码+解析)

在Android里面,从一个Activity跳转到另一个Activity、再返回,前一个Activity默认是能够保存数据和状态的。...在Activity B中添加一个“回到上一页”的Button,返回到Activity A之后,需要保留之前输入的相关信息,我们用startActivityForResult来拉起Activity B,这样...,Activity A就会有一个等待Activity B的返回。...具体步骤如下: 在Activity A中有一个Button,点击Button后,获取要传到Activity B的数据,将数据封装到Bundle中,再调用startActivityForResult将数据传到...等同于调用 startActivity,onActivityResult不会被调用 传一个大于0的值,比如1:效果等同于传0,onActivityResult的第一个参数正是我们通过startActivityForResult

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 多返回栈技术详解

    多返回栈不会改变这个基本逻辑。系统的返回按钮仍然是一个单向指令 —— "返回"。这对多返回栈 API 的实现机制有深远影响。...这就意味着当您调用 commit() 提交了一个调用过 addToBackStack() 方法的 Fragment 事务时,FragmentManager 会执行所有您在事务中所指定的操作 (比如 替换操作...当您调用 popBackStack() 方法时 (无论是直接调用,还是通过系统返回键以 FragmentManager 内部机制调用),Fragment 返回栈的最上层事务会从栈中弹出 -- 比如新添加的...排除 Fragment 在技术上的障碍 虽然 Fragment 总是会保存 Fragment 的视图状态,但是 Fragment 的 onSaveInstanceState() 方法只有在 Activity...△ 我们保存 profile 返回栈并且添加一个新的 commit 后的 FragmentManager 状态 替换回来非常简单: 我们可以在 "notifications" 事务中同样调用 saveBackStack

    96810

    Fragment回退栈及弹出方法

    在上一期分享的文章末尾留了一个课后作业,有去思考如何解决吗?如果已经会了那么恭喜你,如果还不会也没关系,本期一起来学习。...如果没有加入回退栈,则用户点击返回按钮会直接将Activity出栈;如果加入了回退栈,则用户点击返回按钮会回滚Fragment事务。...这就需要我们来多了解事物回滚的相关原理,其实在Fragment回退时,默认调用FragmentManager的 popBackStack() 方法将最上层的操作弹出回退栈。...popBackStack(int id, int flags):其中id表示提交变更时commit()的返回值。...使用popBackStack()来弹出栈内容的话,调用该方法后会将事物操作插入到FragmentManager的操作队列,只有当轮询到该事物时才能执行。

    4.6K70

    Fragment全解析系列(一):那些年踩过的坑

    在这之前为了方便后面文章的介绍,先规定一个“术语”,安卓app有一种特殊情况,就是 app运行在后台的时候,系统资源紧张的时候导致把app的资源全部回收(杀死app的进程),这时把app再从后台返回到前台时...getActivity()空指针 可能你遇到过getActivity()返回null,或者平时运行完好的代码,在“内存重启”之后,调用getActivity()的地方却返回null,报了空指针异常...),会发现无论如何都不能在onActivityResult()中接收到返回值,只有最顶层的父Fragment才能接收到,这是一个support v4库的一个BUG,不过在前两天发布的support 23.2.0...如果你加入了回退栈,popBackStack()系列方法才能真正出栈,这也就引入下一个深坑,popBackStack(String tag,int flags)等系列方法的BUG。...如果你popBackStack多个Fragment后,紧接着beginTransaction() add新的一个Fragment,接着发生了“内存重启”后,你再执行popBackStack(),app就会

    3.2K20

    Navigation深入浅出,到出神入化,再到实战改造

    左侧为添加一个 图片.png 新节点, 图片.png 设置某个节点,为首页第一个展示节点。...即那个Fragment enter:进入动画 Exit :退出动画 Pop Enter : 上一节点出栈当前节点的动画 Pop Exit: 上一节点回退栈到当前节点的动画 Pop To 按返回键会调用...拦截返回键的点击事件,这样Fragment就可以想Activity一样,具有回退,返回事件 配置路由XML文件,然后加载进NavHostFragment中 app:navGraph属性,对应的就是NavGraph...()都表示回退上页面,但navigateUp()在Deeplink的情况下 应用1a(deeplink)路由到应用2的B后navigateUp()返回到a,而popBackStack()则会返回到当前栈内的上一层...(A) 另一个区别是popBackStack()支持回退到指定页面,inclusive参数,之前有提到过 bundle 设置传递参数 Options设置其他配置参数,如动画,popUpTo等,也就说,

    60510

    Jetpack路由组件学习:深入理解功能强大的Navigation架构之接管系统的返回操作

    addToBackStack()方法,而FragmentActivity2调用了。...FragmentManager处理返回原理 image.png 「handleOnBackPressed()」 处理逻辑如下: 当回退栈中有记录时,调用popBackStackImmediate(),该方法调用...image.png 「case->popBackStack(null,0)」 image.png 「case2->popBackStack(“s2”,0)」 image.png 「case3->popBackStack...所以要想深入理解Navigation的设计思想,就需要对Fragment和Navigation都很熟练,这是一个痛点。 当然“纸上得来终觉浅,绝知此事要躬行”。...最后不用多说,相信大家都有一个共识:无论什么行业,最牛逼的人肯定是站在金字塔端的人。所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。

    1.4K30

    异步请求和异步调用有区别?直到看到了7年前的一个问答

    直到在Stack Overflow上搜到了一篇七年前的文章,这个疑惑才解开。 今天就带大家一起探究一下“异步请求和异步调用”这两个概念。...区别二:异步请求是会一直等待response相应的,需要返回结果给客户端的;而异步调用往往会马上返回给客户端响应,完成这次整个的请求,至于异步调用的任务后台运行就可以了,客户端不会关心。...那么,是否想过一个问题,我们通常说请求一个接口和调用一个接口时难道不是一个意思吗?怎么在这里就变成两个截然不同的概念了? 疑问探究 带着上面的疑问,开始用搜索引擎进行搜索。...如果将web服务设置为异步服务,那么可以把耗时服务委托给另外一个线程,或者使用非阻塞机制,在未来的某刻进行返回。还以读取大文件为例,可以使用异步的ReadFile方法来读取大文件。...原文链接:《异步请求和异步调用有区别?直到看到了7年前的一个问答》 ---- 程序新视界 公众号“ 程序新视界”,一个让你软实力、硬技术同步提升的平台,提供海量资料

    95810

    Android 基础:Fragment,看这篇就够了 (上)

    一个Activity里可以有多个Fragment。 一个Fragment可以被多个Activity重用。 Fragment有自己的生命周期,并能接收输入事件。...如果没有加入回退栈,则用户点击返回按钮会直接将Activity出栈;如果加入了回退栈,则用户点击返回按钮会回滚Fragment事务。...Op prev; //链表前一个节点 int cmd; //操作是add或remove或replace或hide或show等 Fragment fragment; //对哪个...与addToBackStack()对应的是popBackStack(),有以下几种变种: popBackStack():将回退栈的栈顶弹出,并回退该事务。...ID对应的方法,"data"为参数值 Activity向Fragment传递数据 Activity向Fragment传递数据比较简单,获取Fragment对象,并调用Fragment的方法即可,比如要将一个字符串传递给

    6.2K40
    领券