startactivityforresult
关于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()中接收数据,然后拿到数据你想干嘛就干嘛了
就是这个样子。。。
相关阅读
抛弃onActivityResult,彻底改变startActivityForResul
常规写法 在Android开发中,我们经常需要启动另一个Activity并得到它返回的数据,常规的写法是这样的:private static final int RE
Android startActivityForResult基本用法
从A页面使用startActivityForResult()跳转到B页面,B页面点击返回时将新写入的值传回到A页面。 MainActivity: public class MainAct
更优雅的使用startActivityForResult及权限请求
一、问题所在 Android页面之前的数据回传我们一般使用startActivityForResult来处理,这没什么问题,但问题就在于我们所有的处理结