startActivityForResult用法
使用场景:A界面(activity) 可跳转到一个(假设为 B)或多个子Activity,要求B处理完工作之后返回A 界面,或许同时返回一些数据交给A继续处理。如 由登陆界面A跳转到注册界面B,注册成功后由注册界面返回到登陆界面A,同时将新注册的账号带到登陆界面A,并将其填充到用户账号输入框,方便用户登陆。
//主界面中启动子模块
startActivityForResult(Intent intent, Int requestCode)
//主界面A中接收返回数据
onActivityResult(int requestCode, int resultCode, Intent intent)
//子模块中设置返回数据
setResut(int resultCode, Intent intent)
例子:
启动子模块
Intent intent=new Intent();
intent.setClass(A.this, B.class);
Bundle bundle=new Bundle();
bundle.putString("data", "data");
intent.putExtras(bundle);
startActivityForResult(intent, 0);//requestCode一定要>=0,接收返回数据时用requestCode区分到底是哪个子模块返回的数据
重写onActivityResult,用来接收子模块返回的数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) { //resultCode标记完成装态
   case RESULT_OK:
    if(requestCode==0){//根据requestCode区分是哪个子模块返回的数据然后进行相应的业务处理
    Bundle b=data.getExtras(); //data为B中回传的Intent
    String str=b.getString("data");//str即为回传的值,A界面可以进一步处理
}
    break;
default:
    break;
    }
}
在子模块如B中回传数据使用setResut,之后调用finish()
setResult(RESULT_OK, intent);
finish();//此处一定要调用finish()方法
startActivityForResult用法的更多相关文章
- android: startActivityForResult用法详解
		一.如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode ... 
- startActivityForResult用法详解
		一.如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode ... 
- 安卓startActivityForResult用法
		startActivityForResult的作用就是它可以回传数据,假如我们有两个页面A和B,点击A页面的一个按钮,进入下一个页面B,进入页面B后,进行设置操作,并在finish()或者back后, ... 
- startActivityForResult( )用法
		一.与startActivity( )的不同之处 1, startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( ). 2, start ... 
- Android Tips – 填坑手册
		出于: androidChina http://www.androidchina.net/3595.html 学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的 ... 
- android 开发从入门到精通
		Android-Tips This is an awesome list of tips for android. If you are a beginner, this list will be t ... 
- Android activity之间的跳转和数据传递
		1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtr ... 
- ot
		https://blog.csdn.net/notice520/article/details/8135600 | android中的跨进程通信的实现(一)——远程调用过程和aidl - CSDN博客 ... 
- startActivityForResult的使用和用法
		startActivityForResult的使用和用法 startActivityForResult 和 onActivityResult在activity间传递数据 AndroidManifest ... 
随机推荐
- python之__init__使用方法
			定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调用这个方法,一般用来对实例的属性进行初使化.比如:class testClass: def __init__(self ... 
- draggable与overflow同时存在,无法拖拽出父元素问题解决
			在使用jquery-ui的拖拽功能对列表内的选项拖拽时,发现无法将选项拖拽出列表的范围,一出范围就自动隐藏在列表下,查找到最后的原因是css中的overflow的原因,overflow存在则不能将选项 ... 
- webpack最简单的入门教程里bundle.js之运行单步调试的原理解析
			读这篇文章的朋友,请确保对webpack有最基础的认识. 您可以阅读我前一篇文章:Webpack 10分钟入门 来在本地运行一个Webpack的hello world项目.https://www.to ... 
- mac上Apache修改目录浏览权限
			sudo vim /etc/apache2/httpd.conf <Directory "/Library/WebServer/Documents"> # # Poss ... 
- IOS Modal(切换另外控件器方式)
			● 除了push之外,还有另外一种控制器的切换方式,那就是Modal ● 任何控制器都能通过Modal的形式展示出来 ● Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为止 ... 
- 待解决问题:c++栈对象的析构、虚拟内存与内存管理的关系、内存管理的解决方案。
			待解决问题:c++栈对象的析构.虚拟内存与内存管理的关系.内存管理的解决方案. 
- python __getattr__  __setattr__
			class Rectangle: def __init__(self): self.width = 0 self.height = 0 def __setattr__(self, key, value ... 
- python_47_Python2中字符编码与转码
			#python3默认是Unicode,Unicode是万国码,不管中文字符还是英文,所有的每个字符都占2个字节空间,16位 #python2默认是ascii码 #ascii码不能存中文,一个英文只能占 ... 
- Abode Dreamweaver cc 安装与激活
			原文链接Abode Dreamweaver CC是Adobe宣布放弃Creative Suite系列产品后推出的新版Creative Cloud产品,功能上修复了CS6中出现的选取代码不精准的问题,最 ... 
- mysql 5.7 编译安装脚本。
			此脚本尽量运行在centos 服务器上面,用于编译安装mysql 5.7 将此脚本和相应的软件 都放到/usr/local/src 目录下面 由于不能上传附件 所以需要把cmake-3.9.6.ta ... 
