主要功能:两个Activity:A和B,从A中向B中传递数据的时候采用的是Bundle封装数据,然后从A中跳转到B中,当B有需求将数据封装起来回传给A并跳转回A。
通常我们转换Activity时常用到的是startActivity(intent);但是这样不能传递一些数据,所以使用startActivityForResult(Intent intent,int requestCode)方法。
第一步:由A到B ,在A的Activity中使用startActivityForResult(Intent intent, requestCode)方法,如:在A中有
Intent intent = new Intent(A.this,B.class);//由A转向B
intent.putExtra("msg", "hello");//传递的一个消息
startActivityForResult(intent,0); //参数1为requestCode,这个参数值可以自己设置,主要是为后面的onActivityResult()对应识别所用
第二步:在B中,
Intent aintent = new Intent(B.this, A.class); //B转向A
setResult(1); //这里的参数1为resultCode,也就是在B中要返回给A的数据
finish(); // 把打包好的数据发给A且运行onActivityResult()部分的代码
第三步:在A中运行onActivityResult()方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0) {
if (resultCode == 1) {
……进行一些操作;
Bundle b=data.getExtras(); //data为B中回传的Intent
String str=b.getString("msg"); //得到传递的参数
}
}