Android语言基础教程(88)Android多个Activity的使用之调用另一个Activity并返回结果:Activity漂流记:一次“不归路”与“带娃回家”的编程奇遇

嘿,各位在代码世界里摸爬滚打的准大神们!今天咱们来聊一个Android开发里既基础又贼重要的话题——多个Activity之间,怎么“呼来唤去”,还得让被叫走的那位“带点东西回来”。

想象一下这个场景:你(主Activity)在家里(主界面)舒舒服服躺着,突然想吃外卖了。这时候你有两个选择:

  1. 普通呼叫: 你打开外卖App(启动新Activity),看了一眼,然后直接按Home键溜了(按返回键)。结果就是,你啥也没买,空手而归。这在代码里对应 startActivity(),一别两宽,各自安好。
  2. 带任务呼叫: 你打开外卖App(启动新Activity),精挑细选,下单付款,然后App告诉你“订单已生成,预计30分钟送达”。最后你返回桌面,但你的手里(或者说,你的记忆里)多了一个“订单号”。这就是我们今天要说的 “调用另一个Activity并返回结果”

后一种情况,在编程世界里,我们称之为 “启动一个Activity以获得结果”。它就像是派你的小弟(新Activity)出去执行一个任务,任务完成后,他必须回来向你汇报,并且把任务成果(比如一份机密文件、用户的选择、一张拍好的照片)亲手交到你手上。

第一幕:出发前的准备——行李打包与接头暗号

在你派小弟出门之前,你得告诉他两件事:

  1. 你要去哪,干什么? (通过Intent指定目标Activity)
  2. 我凭什么认定是你回来了? (请求码 Request Code)

在我们的外卖比喻里,“打开外卖App”这个动作,就是一个Intent。我们通过 startActivityForResult(intent, requestCode) 这个方法,来启动这次“带结果的旅程”。

requestCode 是个啥?
想象一下,你同时派了小弟A去买奶茶(请求码=1),又派了小弟B去取快递(请求码=2)。过了一会儿,小弟回来了,你光看脸可能记不清是谁,但如果你出门前给他们每人发了个不同颜色的帽子(请求码),你就能立刻分清:哦,戴红帽子(请求码=1)的是买奶茶的,我得问他奶茶买好了没。

这个 requestCode 就是你自定义的一个整数,用来在之后区分是哪个“小弟”回来了。

第二幕:小弟的独立任务——干活与打包结果

小弟(新Activity)被启动后,他会独立运行,拥有自己的界面和逻辑。比如,他可能是一个让用户选择联系人的界面,或者是一个拍照界面。

当他的任务完成时(用户选好了联系人,或者拍完了照片),他不能默默地自己关闭就完事了。他需要做两件事:

  1. 把任务结果打包。 (准备一个Intent,把数据放进去)
  2. 设定任务状态。 (是成功完成了,还是用户取消了?)
  3. “自杀”并送回结果。 (调用 setResult() 然后 finish()

这里的关键方法是 setResult(int resultCode, Intent data)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值