onActivityResult方法的使用
来源:互联网 发布:ubuntu 国内源 编辑:程序博客网 时间:2024/06/16 00:30
在进行界面间的跳转和传递数据的时候,我们有的时候要获得跳转之后界面传递回来的状态,数据等信息。这个时候,我们不一定需要使用Intent进行跳转回原先设置的界面,而是使用onActivityResult方法就可以解决这个问题。
原理如图:
我们这里假设有A、B两个Activity,由A跳转到B,然后B返回到A。
在这一过程中,我们在A启动B的过程中调用startActivityForResult()方法来启动B,
然后在B中调用Context.setResult()方法来传递返回的Code,
并在A中的onActivityResult()方法中解析返回的结果,并做相应的逻辑操作。
对几个方法的解释:
1.startActivityForResult(Intent Intent, int requestCode):
该方法要在onCreate中调用,传递的参数有两个,一个是Intent,intent中可以携带传递的数据;另一个是int型的请求码Code,请求码可以自己定义。
请求码的作用:为了区分启动不同的Intent,或者传递不同的数据使用,作为一种不同启动的标识。比如A有两个Button都要启动B,为了区分是哪个Button启动的B,我们就要设置两个不同的请求码来区分。
这个方法是启动B的启动方法,调用之后会跳转到界面B,并传递相应的数值。同时,对于具体Intent传递的数值,可以使用接下来讲解的onActivityResult()方法来传递,这样启动方法和数据操作方法分开写,会更好。
2.B中的setResult方法。
setResult()方法有两个,一个是只含有int型参数ResultCode,另一个是可以传递Intent的,分别为,如图:
使用方法就是获取当前Activity作为对象,并调用该方法,然后再执行finish()方法,结束当前界面就可以。
当调用setResult方法之后,A界面就已经收到了发送的数据。
3.onActivityResult()方法的使用:
参数类型如图:
三个参数分别为int型 requestCode, int型 resultCode, Intent型 data。
第一个是请求码,可以进行传递数据前的一些操作,比如根据不同的请求码,设置不同的传递内容。
第二个是返回码,也就是在B中设置的int的数值,这个是得到返回的内容的标识。
第三个是Intent的数据,比如在B中的setResult方法中传递了一些数据,在A中就可以通过解析Intent的内容来获得传递过来的数据。
对于具体的写法,可以按照下图的方式构造:
- onActivityResult方法的使用
- Intent以及onActivityResult方法的使用
- onActivityResult方法使用
- onActivityResult方法使用
- Android:onActivityResult的使用
- Android:onActivityResult的使用
- onActivityResult(),startActivityForResult()的使用
- onActivityResult 的使用
- ActivityGroup里面装的子Activity不能使用OnActivityResult()方法
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Python: PS 图像调整--饱和度调整
- 剑指offer 47 孩子们的游戏(圆圈中最后剩下的数)
- 关于java中的list接口的认识(原码分析)
- opencv旋转图像
- Android.mk 文件语法详解
- onActivityResult方法的使用
- json爬取京东评论
- SharePreference的commit与apply的区别
- 【WinterCamp 2013】楼房重建 && 【NOIP2017提高A组模拟10.8】God Knows
- okhttp(网络框架)
- java基础之面向对象
- 虚拟机的安装,管理和快照
- ThinkPHP5地址栏传参不用设置路由
- Python: PS 滤镜--素描