Activity间数据传递

Activity间数据传递

使用putExtra()传递数据

putExtra(name,value)方法可将指定的数据封装到Intent对象中。其中,name为表示数据名称的字符串,value为要传递的各种数据类型的值。
要获取lntent对象中封装的数据,可调用各种getXXXExtra()方法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dHQ3yVXW-1607776364494)(C:\Users\15631\AppData\Roaming\Typora\typora-user-images\image-20201212202002775.png)]

使用Bundle对象传递数据

将各种数据封装到一个Bundle对象中,再将Bundle对象封装到Intent对象中传递给启动的活动。
Bundle对象的各种putXXX(String key,XXx value)方法,可将XXX类型的数据封装到其中,对应的用getXXX(String key)方法从其中获取数据。Bundle对象准备好之后,调用putExtras(bundle)或putExtra(name,bundle)方法将其封装到Intent对象中。
要从Intent对象中获取Bundle对象时,调用对应的getExtras()或getBundleExtra()方法即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R3kH7M40-1607776364496)(C:\Users\15631\AppData\Roaming\Typora\typora-user-images\image-20201212202104248.png)]

获取活动返回的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qz0rmeiT-1607776364497)(C:\Users\15631\AppData\Roaming\Typora\typora-user-images\image-20201212202805351.png)]

startActivityForResult(intent,requestCode)方法来启动活动,请求返回结果:
参数intent是一个Intent对象,用于封装需要传递给活动的数据。
参数requestCode为请求码,是一个整数,用来标识当前请求。一个活动可能会接收到其他不同活动的请求,从活动返回时,它会原样返回接收到的请求码。
在处理返回结果时,可通过请求码判断是不是从所请求的活动返回。

在第二个Activity中,用setResult(resultCode,intent)方法设置返回结果,resultCode为结果代码,intent为封装了返回数据的Intent对象。
在第一个Activity中需重写onActivityResult(int requestCode, int resultCode,Intent data)方法来处理返回结果:
requestCode为从所请求的活动返回的它所接收到的请求码;resultCode为结果代码,常量RESULT_CANCELED表示用户取消了操作,RESULT_OK表示用户正确完成了操作;data为请求活动返回的Intent对象,从中可获取返回的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TlE6ITCz-1607776364501)(C:\Users\15631\AppData\Roaming\Typora\typora-user-images\image-20201212203047755.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hqTD6E4R-1607776364503)(C:\Users\15631\AppData\Roaming\Typora\typora-user-images\image-20201212203107077.png)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值