Android 开发 / Coder之路 · 2014/04/13 0

Activity 间的数据交互 – Activity 返回值的接收

场景

一个 Activity A 启动了一个新的 Activity B 之后, A 很有需要在 B 完成某些操作后, 作出一定的页调整, 比如 A 调用了一个登录 Activity B, 那么在 B 完成登录后, 很可能 A 里的部分组件就需要做一些更改, 以展示登录后的效果, 比如显示已登录用户的用户名和头像.

实现

1. Activity A 实现部分

启动 Activity B:
startActivityForResult(Intent intent, int requestCode)
参数1 – intent: 启动 Activity B 的 Intent 对象
参数2 – requestCode: 分配给 Activity B 的识别码, 用于标识 Activity 返回结果来源的标识, 因为一个 Activity A 可能会执行多种启动新 Activity 的操作, 这样可以标识是从哪个新的Activity 返回的结果

定义接收接口:
onActivityResult(int requestCode, int resultCode, Intent data)
参数1 – requestCode: 同上
参数2 – resultCode: Activity B 返回的结果值
参数3 – 由 Activity B 返回的 Intent 对象, 用于 Activity 间的数据传递.

以上完成后一个准备接受返回结果的 Activity A 就已经 stand by 了.

2. Activity B 实现部分
设置返回结果:
setResult(int resultCode, Intent data)
参数1 – resultCode: Activity B 返回的结果值, 会被 Activity A 的 onActivityResult 的参数2 接收到
参数2 – intent: Activity B 期望传递给 Activity A 的数据, 会被 Activity A 的 onActivityResult 的参数3 接收到

至此整个操作就完成了