Android中不同Activity之间的数据传递

需要用到的类及方法:

类似:两个国家做贸易,交易货物;

--传递载体intent(货船)
--需要传递的内容bundle(集装箱)包装的string(某控件的值)<bundle是以键值对的形式存储数据的>
--对接方法onActivityResult(海关):需要验证requestCode(请求密码)和resultCode(返回密码),接收返回的intent2;

--Acitivity1(国家1)startActivityForResult(intent1,requestCode)方法,启动下一个Activity,提供requestCode,并将储存数据的intent1传递给Activity2

--Activity2(国家2)setResult(resultCode,intent2),返回承载数据的intent2,并提供resultCode

传递过程:

第一步,从Activity1传递参数到界面Activity2:

Bundle bundle1 = new Bundle();		//制造集装箱1用来装数据
bundle1.putString("KEY",string1);		//将数据1放入集装箱1

Intent intent1 = new Intent();			//建造货船用于存放集装箱
intent1.setClass(this,Activity2.class); //设定货船的目的地--Activity2
intent.putExtra("BUNDLE_NAME",bundle1); //将集装箱放进货船
startActivityForResult(intent1,119);	//货船出发,带着密码1开往目的地
<将上面一段代码写在某跳转事件里,执行后即可跳转到Activity2,并把数据string1带过去>

第二步,在Activity2中取得传递过来的数据:

Bundle bundle = getIntent().getBundleExtra("BUNDLE_NAME");	//从货船intent上拿到集装箱
String str = bundle.getString("KEY");						//从集装箱里拿到数据
第三步,将Activity2中的数据传出到Activity1“海关”

Bundle bundle2 = new Bundle();		//制造集装箱2用来装数据
bundle2.putString("KEY2",string2);		//将数据2放入集装箱2

Intent intent2 = new Intent();			//建造货船用于存放集装箱
intent.putExtra("BUNDLE_NAME2",bundle2); //将集装箱放进货船
setResult(911,intent2);					//货船出发,带着密码2开往目的地
第四步:Activity1从自己的“海关”根据密码1和密码2取得数据

//在Activity1中建立海关(覆写onActivityResult方法),
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	super.onActivityResult(requestCode, resultCode, data);

	Bundle bundle = data.getBundleExtra("BUNDLE_NAME2");
	String str2 = bundle.getString("KEY2");
	if (requestCode == 119 && resultCode == 911) {
		//处理str2数据;
	}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值