(转载)Android进阶2之Activity之间数据交流(onActivityResult的用法)
转载自 http://www.blogjava.net/mixer-a/archive/2012/03/23/375014.html
主要功能:
在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这样的数据交流就要用到回调函数onActivityResult。
<1>startActivityForResult(Intent intent, int requestCode);
第一个参数:一个Intent对象
第二个参数:如果> = 0,当Activity结束时requestCode将归还在onActivityResult()中。以便确定返回的数据是从哪个Activity中返回
<2>onActivityResult(int requestCode, int resultCode, Intent data)
第一个参数:这个整数requestCode提供给onActivityResult,是以便确认返回的数据是从哪个Activity返回的。
这个requestCode和startActivityForResult中的requestCode相对应。
第二个参数:这整数resultCode是由子Activity通过其setResult()方法返回。
第三个参数:一个Intent对象,带有返回的数据。
<3>setResult(int resultCode, Intent data)
调用这个方法把Activity想要返回的数据返回到父Activity
第一个参数:当Activity结束时resultCode将归还在onActivityResult()中,一般为RESULT_CANCELED , RESULT_OK。
第二个参数:一个Intent对象,返回给父Activity的数据。
本实例一共有三个Activity。点击飞往火星跳转到otherActivity,把地球带给火星的消息显示在otherActivity中。点击返回地球时把火星带给地球的消息传到主Activity.
同理:
点击飞往月球跳转到thirdActivity,把地球带给月球的消息显示在thirdActivity中。点击返回地球时把月球带给地球的消息传到主Activity.
具体实现:
主Activity:
otherActivity:
thirdActivity:
转载自 http://www.2cto.com/kf/201205/133027.html
androidActivity之间的跳转不只是有startActivity(Intent i)的,startActivityForResult(Intent intent, int requestCode)也是常用的方法。
其作用是可以用onActivityResult(int requestCode, int resultCode, Intent data)方法获得请求Activity结束之后的操作。 需要注意三个方法:startActivityForResult(Intent intent, int requestCode),onActivityResult(int requestCode, int resultCode, Intent data),setResult(int resultCode, Intent data)
例如如下代码:从From跳转至ToB和ToC From: if(条件){ Intent intent = new Intent(this, ToB.class); startActivityForResult(serverIntent, REQUEST_CODE_01);//跳转至ToB }else{ Intent intent = new Intent(this, ToC.class); startActivityForResult(serverIntent, REQUEST_CODE_02);//跳转至ToC } public void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case REQUEST_CODE_01: if(resultCode==Activity.RESULT_OK) //do something break; case REQUEST_CODE_02: //do something break; } } 这里说说startActivityForResult(Intent intent, int requestCode)的参数,第一个Intent不用说了,需要注意的是第二个,我们用的是REQUEST_CODE_01和REQUEST_CODE_02,其实这个是我们自己定义的一个int型常量,用于标记的,具体作用可在onActivityResult方法里看到,用于判断是从哪个Activity返回的。 ToB: Intent intent = new Intent(); intent.putExtra(key, value); setResult(Activity.RESULT_OK, intent); finish();//结束之后会将结果传回From ToC: Intent intent = new Intent(); intent.putExtra(key, value); setResult(Activity.RESULT_OK, intent); finish();//结束之后会将结果传回From setResult的第一个参数对应上面onActivityResult的第二个参数,注意别把onActivityResult的第一个参数与第二个参数搞混淆了,一个是请求标记,一个是返回标记。 欢迎补充~~~
转载于:https://www.cnblogs.com/zqq965774513/p/3571007.html
(转载)Android进阶2之Activity之间数据交流(onActivityResult的用法)相关推荐
- 解析activity之间数据传递方法的详解
转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下 1 基于消息的通信机制 Int ...
- android数据回传的代码,android Activity之间数据传递 Parcelable和Serializable接口的使用...
Activity之间传数据时,为了避免麻烦,往往会将一些值封装成对象,然后将整个对象传递过去.传对象的时候有两种情况,一种是实现Parcelable接口,一种是实现Serializable接口. 0. ...
- Android(Fragment和Activity之间通信)
Fragment的使用可以让我们的应用更灵活的适配各种型号的安卓设备,但是对于Fragment和Activity之间的通信,很多朋友应该比较陌生,下面我们就通过一个实例来看一看如何实现. 一.Acti ...
- Android 使用 ActivityResult 处理 Activity 之间的数据通信及调起拍照实例
在 Android 中,我们如果想在 Activity 之间双向传递数据,需要使用 startActivityForResult 启动,然后在 onActivityResult 中处理返回,另外申请权 ...
- Android中BroadCast与Activity之间的通信
在看本文之前,假设你对于Android的广播机制不是非常了解.建议先行阅读我转载的一篇博文:图解 Android 广播机制. 因为本案例比較简单,故直接在此贴出代码,不做过多的阐述. 先上效果截图: ...
- Android进阶之路 - 如何携带数据跳转到三方应用、指定页?
老了,老了,那天有位小同事问我Android跳转三方应用时有什么要注意的?是否可以直接跳?如何传递参数过去? 嗯- 我竟然说需要root或者三方授权,尴尬了- 其实Android的四大组件都支持IPC ...
- Android笔记:Fragment与Activity之间的交互,onAttach,退出最后一个 fragment
一.交互代码笔记: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 private Log ...
- Android进阶UI之加载数据等待时,小人奔跑进度动画对话框
##1 概述 Android中,常见的动画模式有两种:一种是帧动画(Frame Animation),一种是补间动画(Tween Animation).帧动画是提供了一种逐帧播放图片的动画方式,播放事 ...
- Android 程序,实现Activity之间的跳转
大概效果:在Activity1中有一个Button,当点击Button时,跳转到Activity2.跳转时,由Activity1向Activity2传递字符串,使Activity2中原本为空的Text ...
最新文章
- 运营书籍:新媒体运营实战笔记
- 浙江大学-计算机中的数学(诙谐幽默的短视频)
- Linux(CentOS) 如何查看当前占用CPU或内存最多的K个进程
- linux下 chown命令
- PYTHON调用JENKINS的API来进行CI
- 杜教BM模板(用于求线性递推公式第N项)
- 带有自定义注释的Java注释教程
- windows 10 删除Linux系统方法
- char flag[20]c语言,C语言试卷
- 马云怒赞的93年网红区块链工程师,教你如何用3年时间实现逆袭
- 搞了很久终于突破了一点瓶颈,fighting!!!!!!!!!!!!!!!!
- JAVA 多用户商城系统b2b2c- 服务消费者(rest+ribbon)
- 牛腩新闻发布系统——总结
- 小马智行获准在北京开启无人化出行服务商业化试点;华为成为Sisvel Wi-Fi 6专利池创始成员 | 美通企业日报...
- 集成模型Bagging和Boosting的区别
- Android 仿QQ退出(点击返回键不退出app,点击icon直接进入上次退出的页面)
- 美国大学计算机工程专业排名,2018美国大学计算机工程专业排名_美国大学计算机工程排名...
- P4设计实现链路监控
- 使用git命令——分支切换
- 怎样检查mysql是否安装成功_怎么检验mysql安装成功
热门文章
- 动手实现Kotlin协程同步切换线程,以及Kotlin协程是如何实现线程切换的
- 2021-04-17 安装Ubuntu18.0.4 的深度学习训练服务器
- 跟alex学python_跟着Alex学习python
- python list_Python中的基本list操作
- 深度学习-TF函数-layers.concatenate用法 numpy数组维度
- linux shell判断文件、目录是否存在并移动到指定位置
- MFC 不存在从 CString 到 char * 的适当转换函数
- Caffe学习系列(13):数据可视化环境(python接口)配置
- 教你怎么用WIN7系统自带工具调整硬盘分区
- Java NIO学习系列一:Buffer