startActivityForResult 解析用法

前言:

想跳转到另外一个Activity ,finish后有结果返回,之前一直都没有做这个方面的详细解析,很容易混淆参数值,每次用到了都百度才想起,今天就把这节补全



相关函数:
startActivityForResult(Intent intent, Int requestCode)
setResut(int resultCode, Intent intent)
onActivityResult(int requestCode, int resultCode, Intent intent)


留意上面的方法参数,就可以对应出两个参数值requestCode,resultCode,一个是要求值,一个是结果值,记住这两个就好办了,为了逻辑清晰,我这里就不传参数了(虽然这个主要作用是用于传参数的判断)


1.先是A中startActivityForResult(Intent intent, Int requestCode)跳转到B

Intent intent=new Intent();
intent.setClass(A.this, B.class);
startActivityForResult(intent, 0);//requestCode必须大于等于0


2.B中重写setResut(int resultCode, Intent intent)方法 返回B处理后的数据。

setResult(OK, intent); 
finish();//此处一定要调用finish()方法


3.A中重写onActivityResult(int requestCode, int resultCode, Intent intent)方法,用来接收B回传的数据。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) { //resultCode为B回传的标记,我在B中回传的是RESULT_OK
   case OK:
	if(requestCode == 0)//requestCode为判断A中哪里来(可能A中有两个入口调用startActivityForResult,这里就用到了
	{
	//data获取回传的数据 
	}else{
	//data获取回传的数据 
	}
    break;
default:
    break;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值