【10】Intent

Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执 行的动作,还可以在不同组件之间传递数据。Intent一般可用于启动Activity、启动Service以 及发送广播等场景

Intent大致可以分为两种:显式Intent和隐式Intent

01.显示Intent

构建intent对象,第一个参数传入this也就是FirstActivity作为上下文,第二个参数传入SecondActivity::class.java作为目标Activity

startActivity()方法,专门用于启动Activity,它接收一个Intent参数

02.隐式Intent(官方推荐)

只有<action>和<category>中的内容同时匹配Intent中指定的action和category时,这个 Activity才能响应该Intent。

  

03.打开百度浏览器

第一种直接跳转到浏览器

第二种内嵌选择,主要改动是mainfest 

 

04. 给下一个Activity传递数据

 在FirstActivity中通过putExtra方法塞值,传递给SecondActivity中进行打印

 在SecondActivity中通过getStringExtra进行获取传递的值,并通过Log打印出来

如果传递的是整型数据,则使用getIntExtra()方法;如果传递的是布尔型数据, 则使用getBooleanExtra()方法,以此类推

05.返回数据给上一个Activity

startActivityForResult方法是打开新的activity并在关闭后返回数据 ,startActivityForResult()方法接收两个参数:第一个参数还是Intent;第二个参数是请 求码,用于在之后的回调中判断数据的来源。

可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。专门用于向上一个Activity返回数据。

 setResult()方法接收两个参数:第一 个参数用于向上一个Activity返回处理结果,一般只使用RESULT_OK或RESULT_CANCELED这 两个值;第二个参数则把带有数据的Intent传递回去。最后调用了finish()方法来销毁当前 Activity。

onActivityResult()方法带有3个参数:第一个参数requestCode,即我们在启动Activity 时传入的请求码;第二个参数resultCode,即我们在返回数据时传入的处理结果;第三个参 数data,即携带着返回数据的Intent。由于在一个Activity中有可能调用 startActivityForResult()方法去启动很多不同的Activity,每一个Activity返回的数据都 会回调到onActivityResult()这个方法中,因此我们首先要做的就是通过检查 requestCode的值来判断数据来源。确定数据是从SecondActivity返回的之后,我们再通过 resultCode的值来判断处理结果是否成功。最后从data中取值并打印出来,这样就完成了向 上一个Activity返回数据的工作。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值