专题4:startActivityForResult

专题4:startActivityForResult
startActivityForResult(Intent intent, int requestCode)这个方法一般用来在ActivityA中启动另个activityB,当返回的时候需要携带来自B的数据更新ActivityA界面。

一.首先在ActivityA中启动startActivityForResult startActivityForResult(Intent intent, int requestCode)
专题4:startActivityForResult
参数1.intent,可以携带一些数据。
参数2.requesCode,自定义的一个int类型的数值(一般>0),当从activityB中返回来的时候会一起回传,所以可以用这个参数来判断是从哪个activity中返回的。(注意:开启新的activity时传递的requestCode必须不一样,才能保证数据回传正常)

二.其次还有一个方法。这个方法是在ActivityB中使用的,主要一定要在finish()之前调用该方法不然不起作用
setResult(int resultCode, Intent data)

专题4:startActivityForResult
同样还是两个参数:
参数1:resultcode,这个参数有两个作用:1.判断有没有返回成功。2.可以判断是从哪个activity返回。
为什么呢?这个参数可以自定义,如果返回成功了,之前在activityB中定义的resultcode和在ActivityA中onActivityResult(int requestCode, int resultCode, Intent data)方法中获取的resultcode的值一样,因此可以通过resultcode来判断当前activity从哪个activity返回。 如果失败了(比如你在ActivityB中直接按了返回键,什么都没有操作),这种情况在ActivityA中接收到的requestCode就是0,所以这个参数可以用来判断是否返回成功。

三。最后在ActivityA中onActivityResult()中接收数据,然后拿到数据进行逻辑处理或页面更新。
专题4:startActivityForResult
END.