android学习笔记10(2)——多个Activity跳转和传值

1、使用Bundle在Activity之间交换数据

当在一个Activity中启动另一个Activity,而这些Activity之间又经常要交换数据,这时可以通过Intent来实现,因为Intent通常被称为是两个Activity之间的信使,通过将要传递的数据保存在Intent中,就可以将其传递到另一个Activity中.

在Android中,可以将要保存的数据存放在Bundle对象中,然后通过Intent提供的putExtras()方法将要携带的数据保存在Intent中.

说明: Bundle是一个字符串值到各种Parcelable类型的映射,用于保存要携带的数据包传递一个一个的字符

Bundle bundle = new Bundle(); // 实例化一个Bundle对象
bundle.putSerializable("info", info); // 将输入的基本信息保存到Bundle对象中
Intent intent = new Intent(this,Activity2.class);
intent.putExtras(bundle); // 将bundle保存到Intent对象中
startActivity(intent); // 启动intent对应的Activity

接收:Intent intent=getIntent();	//获取Intent对象
     Bundle bundle=intent.getExtras();	//获取传递的数据包
     Info info=(Info)bundle.getSerializable("info");	//获取一个可序列化的info对象

有返回数据的Activity转跳

startActivityForResult(intent, 请求码);//启动activity
setResult(123, intent);//activity2返回结果
/**
* 接收上一个Activity返回回来携带的数据
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
<span style="white-space:pre">		</span>super.onActivityResult(requestCode, resultCode, data);
<span style="white-space:pre">		</span>// 判断,传过去的请求码和返回的请求码是否一致,如果一致证明是我们想要获取的数据。否则不要
<span style="white-space:pre">		</span>if (requestCode == 请求码 && resultCode == 123) {
<span style="white-space:pre">			</span>Bundle bundle = data.getExtras();<span style="font-family: Arial, Helvetica, sans-serif;">//获取传递的数据包</span>
<span style="white-space:pre">			</span>String userName = bundle.getString("userName"); 
<span style="font-family: Arial, Helvetica, sans-serif;">                                               ...    </span>
<span style="font-family: Arial, Helvetica, sans-serif;">}</span>
<span style="font-family: Arial, Helvetica, sans-serif;">}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值