Android startActivityForResult()和onActivityResult()的用法

安卓基础之startActivitystartActivityForResult的区别 安卓基础 一、startActivitystartActivityForResult的区别 1. startActivity( ) startActivity( ) 仅仅是启动另一个Activity,他不会自定回转到原来的Activity,若是想跳回原来的页面,则必须再使用一次startActivity( )来启动原来的Activity。 2. startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从FirstActivity跳转到SecondActi 阅读详情

引用:http://hi.baidu.com/winnyang/blog/item/25feb64ecf370ac4d0c86a48.html

目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A
先看 A.java 的相关代码
//-- A.java --//
/*
* 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果
*/
//启动B
Intent bintent = new Intent(A.this, B.class);
//设置 bintent的Bundle的一个值
String bsay = "Hello, this is B speaking";
bintent.putExtra("listenB", bsay)
startActivityForResult(bintent,0); // 参数(Intent intent, Int requestCode) 的 requestCode 对应下面回收Bundle时识别用的
//重写onActivityResult()来处理返回的数据,建议先看B.java 的代码再回来看这里比较好理解
//这理有三个参数 requestCode, resultCode, data
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK
case RESULT_OK:
Bundle b=data.getExtras(); //data为B中回传的Intent
String str=b.getString("ListenB");//str即为回传的值"Hello, this is B speaking"
/* 得到B回传的数据后做什么... 略 */
   break;
default:
break;
}
}
-------------------------------------------------------------------------------------
//-- B.java --//
// 用 setResut() 准备好要回传的数据后,只要使用finish()的方法就能把打包好的数据发给A且运行onActivityResult()部分的代码
Intent aintent = new Intent(B.this, A.class);
/* 将数据打包到aintent Bundle 的过程略 */
setResut(RESULT_OK,aintent); //这理有2个参数(int resultCode, Intent intent)
... ...
finish();
-------------------------------------------------------------------------------------
OK,代码如上,可能这个时候还会有点疑问,关于参数的疑问。直接看android sdk 帮助说得更清楚。我发现网上有些文章还有吧 requestCode 和 resultCode 混淆说明错的。
startActivityForResult(Intent intent, Int requestCode)
intent 传给B的,不解释,看不懂你还是玩玩手机算了,别想开发的事情了
requestCode >=0就好,随便用于在onActivityResult()区别哪个子模块回传的数据,如果还有C.java ,D甚至E子模块的话,每个区分开不同的requestCode就好。
setResut(int resultCode, Intent intent)
resultCode 如果B子模块可能有几种不同的结果返回,可以用这个参数予以识别区分。这里还有个特殊的 RESULT_OK 值,没有特殊情况用它就好了,sdk有说明的,呵。
intent 继续不解释,传回给A的onActivityResult()
onActivityResult(int requestCode, int resultCode, Intent intent)
这里三个都不用解释了,与上文对应的东西。如果不对requestCode和resultCode 加以识别区分的话,只要有其他activity setResult到了A onActivityResult()会无差别处理。
Android基础之startActivityForResult详解 1.startActivityForResult的介绍         AndroidstartActivityForResult是为了给上一个Activity返回数据的方法,万丈高楼平地起,今天就Android的重点基础给大伙讲讲。 2.startActivityForResult的详细用法 1.创建两个Activity:MainActivitySecondActivity,布局文件如 阅读详情

相关推荐

Android startActivityForResultonActivityResult的基本用法

方法的作用: startActivityForResult():该方法的工作原理与startActivity非常相似,但有一个重大的区别。除了传递用于确定启动哪个Activity的显式或隐士Intent外,还需要传入一个请求码,请求码将用于返回结果的子Activity的唯一标识。 onActivityResult():当子Activity关闭时,onActivityResult()将在父Activity中触发。可以通过重写方法来处理子Activity的返回结果。 下面在代码中演示一下这两个方法是如何搭配

路宇的博客 1854

startActivityForResult()用法

目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A先看 A.java 的相关代码//-- A.java --///** 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果*///启动BIntent bintent = new Intent(A.this, B.class);//设置 bintent的Bundle的一个值String bsay = "Hello, this is B speaking"; bin

zeng622peng的专栏 1036

图像算法中的 Blob 分析

在计算机视觉中,Blob 可以理解为在图像中具有相似性质(如颜色、亮度等)的像素群体。Blob 通常用作基本单元,在图像分析处理任务中能够提取出有意义的特征。

m0_44975814的博客 2452

Android页面之间进行数据回传

1、 页面1跳转到页面2: Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivityForResult(intent,1); 2、 页面2返回页面1数据: Intent intent = new Intent(); intent.putExtra("aaa","back"); setResult(2,intent); 3、 页面1接收页面2返回的数据(需要onActivityResult方法) @Over

Shi_chenlong的博客 1855

Android 理解startActivityForResult

1、startActivityForResult的使用场景是什么?onActivityResult回调里面的resultCoderequestCode含义是什么?当第一个Activity开启第二个Activity而且需要第二个Activity有finish()back操作时,往回传数据的时候,就需要用到startActivityForResult,有俩个参数第一个intent,传递数据,第二个r

R.先森的博客 512

DialogFragment中如何获取Activity中onActivityResult的返回信息

最近做应用有一个场景是,在Activity中会有一个弹窗(DialogFragment类型),在弹窗中会调用startActivityForResult方法,然后在回调的时候,弹窗的onActivityResult方法并没有收到回调信息,而在它所在的Activity中的onActivityResult方法中可以收到回调信息,但是弹窗需要根据回调的信息来做相应的后续操作,在我不想使用广播之类的方法时

学无止境 3413

Android开发】 startActivityForResult() 被弃用问题

startActivityForResult() 被弃用问题 之前说过启动另一个 activity 可以通过用 Activity 类提供的 startActivityForResult() onActivityResult() 的 API 来获取另一个 activity 返回的结果,但是现在我们现在会发现使用这样的 API 产生了错误提示。 'startActivityForResult(Intent!, Int): Unit' is deprecated /** * Call {@l

HelloWorled的博客 1万+

startActivityForResult与startActivity

startActivityForResult与startActivity的不同之处在于: 1、startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。 2、startActivityForResult( ) 可 以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activi

Townkoim的专栏 513

1.5.44 Android Activity 关于 startActivityForResult() & 主界面连接多个子功能模块

  一、startActivityForResult()用法 在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。   目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A 先看 A.java 的相关代码...

u012913404的专栏 971

Android-面试:说说-Android-的四种启动模式。不同场景下

singleTop这可能也是非常常用的 launchMode 了。如果在任务的栈顶正好存有该 Activity 的实例,则会通过调用 onNewIntent() 方法进行重用,否则就会同 standard 模式一样,创建新的实例并放入栈顶。即便栈中已经存在了该 Activity 的实例,也会创建新的实例,即:A -> B ->A,此时栈内为 A -> B -> A,但 A -> B ->B ,此时栈内为 A -> B。一句话概述就是:当且仅当启.

m0_64604842的博客 200

Android Activity中onActivityResult的使用笔记

相关方法 startActivityForResult (Intent intent,int requestCode) intent requestCode 如果requestCode> = 0,则当Activity退出时,将在onActivityResult()中返回此请求码。 onActivityResult (int requestCode, int resultCode, ...

Brainbg的博客 1万+

Android startActivityForResult对应的onActivityResultonRequestPermissionsResult是怎么来的

简而言之,在Activity finish时会将resultCoderesultIntent的数据打包放在原来的Activity的ActivityRecord里面,在这个Activity重新resume时,会将ActivityResult的数据提取出来进行处理,是动态权限的就调onRequestPermissionsResult,一般情况下就回调onActivityResult。 Activi...

xlnaan的博客 3983

startActivityForResultonActivityResult的理解

这两天追一个bug是因为onActivityResult没有被回调,所以把startActivityForResultonActivityResult的理解简单总结下。        Intent intent = new Intent();        intent.putExtra(ActivityManagerMemoryClassLaunchActivity.MEMORY_CLAS

黎梓小站 3352

AndroidstartActivityForResult()onActivityResult()与setResult()参数分析,activity带参数的返回

@https://www.cnblogs.com/fuck1/p/5456337.html 一、使用场景   在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Activity处理。这种带数据的意图跳转需要使用activity的onActivityResul...

半坡居士 449

Android startActivityForResult()用法

需要完成的任务:在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。/*************华丽丽的分割线*******************/目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A /* * ...

weixin_33847182的博客 1044

AndroidstartActivityForResult、setResult、onActivityResult数据传递详解

经常会遇到这样的应用场景: ActivityA中调用ActivityB,并向ActivityB中传递参数 ActivityB中进行各种操作,操作结束后返回ActivityA,并将B的执行结果传递给A 如图所示,在A中输入算式 B中可以看到算式,然后在B中输入结果 返回A时可以看到结果 完成以上操作需要用到3个重要的函数,即startActivityForResult、setResu...

Code for Coffee 3340

23、OpenMP常见用例与标准循环级示例详解

本文详细介绍了OpenMP的三种典型用例:循环级OpenMP、高级OpenMPMPI+OpenMP,适用于不同层次的并行需求。重点讲解了循环级OpenMP在向量加法、流三元组模板计算中的应用示例,并探讨了首次触摸优化、线程绑定、NUMA架构影响等关键性能优化策略。通过实际代码演示性能分析,帮助开发者快速掌握OpenMP的基础并行化方法,并为后续高性能优化提供指导。

fanta的博客 63

《基于YOLOv8的智慧教室学生课堂行为分析系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面部署说明一站式服务,拿来就能用的绝对好资源!!!项目备注1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

上一篇: startActivityForResult与onActivityResult
soundsun
博客等级 码龄15年 1粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值