一看就懂的 startActivityForResult(Intent intent, int requestCode)

    关于startActivityForResult startActivityForResult(Intent intent, int requestCode)老是遗忘 尤其其中的几个参数。老是傻傻分不清。所以今天就简单的记录下来

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

    一.首先在ActivityA中启动startActivityForResult startActivityForResult(Intent intent, int requestCode)

一看就懂的 startActivityForResult(Intent intent, int requestCode)_第1张图片

参数1.就是一个intent 你可以携带一些数据。当然也可以不懈怠

参数2.requescode,你自定义的一个int类型的数值(一般>0),当从activityB中返回来的时候。会携带回来。所以你可以用这个参数来判断是从哪个activity中返回的。(前提是你在开启新的activity的时候 要传的requestcode不一样)

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

setResult(int resultCode, Intent data)

一看就懂的 startActivityForResult(Intent intent, int requestCode)_第2张图片

同样还是两个参数,

参数1:resultcode,先说作用。这个参数有两个作用。第一个可以用来判断有没有返回成功。还有一个作用同样可以判断是从哪个activity返回来的

 为什么呢。这个参数可以自定义。如果返回成功了,当时你在activityB中定义的什么,那么 在

 onActivityResult(int requestCode, int resultCode, Intent data)

这个方法中就会接收到什么。所以可以用来判断来这哪个activity。 如果失败了(比如你在ActivityB中直接按了返回键。什么都没有操作),这种情况在ActivityA中接收到的requestcode 就是0. 所以这个参数我一般用来判断是否返回成功

     三。最后在ActivityA中onActivityResult()中接收数据,然后拿到数据你想干嘛就干嘛了

一看就懂的 startActivityForResult(Intent intent, int requestCode)_第3张图片

就是这个样子。。。

你可能感兴趣的:(Android技术文档)