Activity之间的数据传递和回传

1、

假定需要进行数据传递和回传的两个Activity为A和B,首先由A打开B,并传递一些数据到B。当B打开后,根据从A处获得到的数据,进行不同的业务操作,并在关闭的同时将不同业务操作所造成的不同的结果数据再还给A。

在这里有两个概念:
requestCode:在A调用B的时候所设置的请求编码,用这个编码,A自身在接收到来自B的返回信息时,可以区分要做怎样不同的操作。

resultCode:在关闭B时,B所发送给A的结果编码。A在接收到这个编码后,可根据自身的业务需要做不同的操作。


2、

A中,调用“startActivityForResult()”方法,代替通常的“startActivity()”方法,来打开B

Intent intent = new Intent(this,B.class);
this.startActivityForResult(intent, requestCode); 

3、

然后,在A中,实现方法“onActivityResult()”。这个方法是用来接收来自B的返回数据的。在这个方法里,可以根据A发送给B的不同的requestCode来进行不同的业务处理,当然也可以根据B返回给A的不同的resultCode,甚至是B返回给A的在Intent中的业务数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
		
    //从本activity所打开的新的activity中所返回回来的数据
    String result = data.getStringExtra("result");
		
    //根据打开新activity时不同的requestCode,进行不同的处理
    switch(requestCode){
	case 1 : //
	    break;
				
	case 2 : //
	    break;
				
	case 3 : //
	    break;
				
    }
}

4、

 在B中,在调用“finish()”关闭自己之前,调用“setResult()”方法,即可将要还给A的数据传送回去:

Intent newIntent = new Intent(this,A.class);
newIntent.putExtra("result", code);//这里可以是任意要传回给A的业务数据
this.setResult(resultCode,newIntent);//使用setResult方法,把resuleCode传给A
this.finish();


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值