大家好,又见面了,我是你们的朋友全栈君。
关于startActivityForResult startActivityForResult(Intent intent, int requestCode)老是遗忘 尤其其中的几个参数。老是傻傻分不清。所以今天就简单的记录下来
startActivityForResult startActivityForResult(Intent intent, int requestCode)。这个方法我一般用来在ActivityA中启动另个activityB。当返回的时候需要携带来自B的数据。ActivityA更新界面。
一.首先在ActivityA中启动startActivityForResult startActivityForResult(Intent intent, int requestCode)
参数1.就是一个intent 你可以携带一些数据。当然也可以不懈怠
参数2.requescode,你自定义的一个int类型的数值(一般>0),当从activityB中返回来的时候。会携带回来。所以你可以用这个参数来判断是从哪个activity中返回的。(前提是你在开启新的activity的时候 要传的requestcode不一样)
二。其次还有一个方法。这个方法是在ActivityB中使用的,主要一定要在finish()之前调用该方法 不然不起作用
setResult(int resultCode, Intent data)
同样还是两个参数,
参数1:resultcode,先说作用。这个参数有两个作用。第一个可以用来判断有没有返回成功。还有一个作用同样可以判断是从哪个activity返回来的
为什么呢。这个参数可以自定义。如果返回成功了,当时你在activityB中定义的什么,那么 在
onActivityResult(int requestCode, int resultCode, Intent data)
这个方法中就会接收到什么。所以可以用来判断来这哪个activity。 如果失败了(比如你在ActivityB中直接按了返回键。什么都没有操作),这种情况在ActivityA中接收到的requestcode 就是0. 所以这个参数我一般用来判断是否返回成功
三。最后在ActivityA中onActivityResult()中接收数据,然后拿到数据你想干嘛就干嘛了
就是这个样子。。。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157223.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...