杂记之activity回传数据

第一个activity代码:

第二个activity代码:

记住,要在androidmanifest.xml文件中声明两个activity哦,代码如下:

-------------------------------------------------------------------------

让我们来总结下,关于activity之间相互跳转的问题:

       activity与activity之间的跳转是通过意图Intent进行的。

intent有一个setClass方法,Intent setClass(Context packageContext, Class<?> cls)第一个参数为当前context,第二个参数为要跳转到的activity。

      我们跳转时,可以通过startActivity()方法进行跳转,这样的跳转是没有返回值的。如果你想要后边的activity返回给当前activity一些数据的话,那么只能通过startActivityForResult()方法。void startActivityForResult(Intent intent, int requestCode),第一个参数为intent,第二个参数为一个请求码,这个数字是你自己设定的。

      除此之外,我们要想获得后边的activity返回给我们的数据,我们还要在当前activity中实现,onActivityResult(int requestCode, int resultCode, Intent data) 方法,其中requestCode与startActivityForResult方法中的requestCode保持一致。(requestCode实际上很有用,如果我们当前的activity可以跳转到很多activity,并且每一个activity都会返回给你数据,那么我们是如何判断到底返回的数据是哪个请求的呢,这里就是用的requestCode)。

      在后边的activity中(被我们通过startActivityForResult方法启用的activity),我们通过this.setResult()方法来返回数据,setResult(int resultCode, Intent data)第一个参数为标识位,就是我们前一个activity实现onActivityResult方法时的resultCode,我们可以通过该值知道数据处理是否成功。

可能取值为:RESULT_CANCELED     RESULT_OK    RESULT_FIRST_USER。

     在setResult()之后调用finish方法是为了销毁当前activity,让前一个activity获得显示机会。

此外,还可以通过 intent.setClassName(String packageName, String className) 方法设置跳转目标,其中packageName是当前activity的包名称,className是目标activity的全路径名,这里一定要注意,是全路径名称!

当然还有Intent 的setClassName(Context packageContext, String className)也是同样的功能,这里贴出他们的api部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值