通信组件——Intent简单使用(二)(获取Activity返回值)

本文详细介绍了如何通过Sub-Activity方式在Android中获取子Activity的返回值,包括启动子Activity的startActivityForResult()方法,设置返回值的setResult()函数,以及在父Activity中通过onActivityResult()接收返回值的过程。
摘要由CSDN通过智能技术生成

    上次示例中,通过使用startActivity(Intent)方法启动Activity后,启动后的两个Activity之间相互独立,没有任何的关联,在很多情况下,后启动的Activity是为了让用户对特定信息进行选择,在关闭这个Activity后,用户的选择信息需要返回给未关闭的那个Activity
    按照Activity启动的先后顺序,先启动的称为父Activity,后启动的称为子Activity
如果需要将子Activity的部分信息返回给父Activity,则可以使用Sub-Activity的方式去启动子Activity

 

 

 

接着让我们来学习一下如何获取子Activity的返回值,一般可以分为以下三个步骤:
一、以Sub-Activity的方式启动子Activity
二、设置子Activity的返回值
三、在父Activity中获取返回值

 

 

 

一、以Sub-Activity的方式启动子Activity需要调用函数startActivityForResult(Intent, requestCode)  ;

 

 

  (注:函数参数Intent用于决定启动哪个Activity,参数requestCode是唯一的标识子Activity的请求码)
显示启动子Activity:

int SUBACTIVITY1 = 1;
Intent intent = new Intent(this, SubActivity1.class);
startActivityForResult(intent, SUBACTIVITY1);

 

隐式启动子Activity:

int SUBACTIVITY2 = 2;
Uri uri = Uri.parse("content://contacts/people");
Intent intent = new Intent(Intent.ACTION_PICK, uri);
startActivityForResult(intent, SUBACTIVITY2);

 

 

 

二、设置子Activity的返回值

 

调用setResult()函数将所需的数据返回给父Activity, setResult()函数有两个参数:结果码和返回值

(注:结果码表明了子Activity的返回状态,通常为Activity.RESULT_OK或者Activity.RESULT_CANCELED,结果码均为整数类型;返回值封装在Intent中,子Activity通过Intent将需要返回的数据传递给父Activity。数据主要是Uri形式,可以附加一些额外信息,这些额外信息用Extra的集合表示)

 

 

代码如下:

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值