需要用到的类及方法:
类似:两个国家做贸易,交易货物;
--传递载体: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数据;
}
}