setResult与setResultData混淆

Android onActivityResult和setResult方法详解及使用 Android onActivityResult和setResult方法                最近做公司项目遇到Android onActivityResult和setResult ,在应用过程中进程报错,这里有必要记录下,以免再次使用出错。 如果你想在Activity中得到新打开Activity关闭后返回的数据,你需要使用系统提供的startActivityForResult(Intent intent,int requestCode)方法打开新的Activity,新的Activity关闭后会向前面的Activity传回数据,为了得到传回的数据,你必须在前面的Activity中重写 立即下载

      在学习安卓几大组件,很多同学在Activity和BroadCastReciver传值之间会遇到一个容易的方法,就是:setResult()和setResultData


首先,setResult()是Activity之间传值用的方法,跟BroadCastReciver没什么关系

要十分注意,在有序的广播中,无论那个广播接受者修改Intent,传递到下一个广播接受者的Intent都是最起始发广播的Intent!!!!!!!!

setResultData,是BroadCastReciver里有序广播传值的一个方法,和Activity之间传值没什么关系.setResultData()方法,就是为了在有序广播中修改传到下一个广播中的值而存在的,且只能存储一个String.


下面条理的详解下各组件之间传值:

       可以这么说,Intent这个类的方法,基本适用于每一个组件传值.我所说的基本适用于是指Intent中最常见的两个传值方法

1.值由A.class传递到B.class
A.class中:

Java代码  收藏代码
  1. Intent intent = new Intent();  
  2.  //设置传递方向   
  3. intent.setClass(A.this,B.class);   
  4. //绑定数据   
  5. intent.putExtra("username1",username);   
  6. intent.putExtra("userpwd1"userpwd);  
  7.  /*或者绑定成一捆数据  
  8. Bundle data = new Bundle();  
  9. data.putString("username1",username);  
  10. data.putString("userpwd1",userpwd); 
  11. intent.putExtras(data);  
  12. */   
  13. //启动activity   
  14. this.startActivity(intent);   

 

 

 

 

B.class中:

 

 

Java代码  收藏代码
  1. Intent intent = getIntent();   
  2. //获取数据   
  3. String username = intent.getStringExtra("username1");   
  4. String userpwd = intent.getStringExtra("userpwd1");   
  5. /* Bundle data = intent.getExtras();  
  6. String username = intent.getString("username1");  
  7. String userpwd = intent.getString("userpwd1"); */   

 

 

 

 2.除了A.class可以向B.class传值外,B.class也可以返回值

 A.class中

 this.startActivity(intent);

 改为this.startActivityFroResult(intent,1);//1为请求码

 B.class中

 对传过来的intent对象赋新值

Java代码  收藏代码
  1. intent.putExtra("username2",username2);   
  2. intent.putExtra("userpwd2",userpwd2);  
  3. this.setResult(1,intent);   
  4. this.finish();//结束焦点   

A.class中重写

 

 

Java代码  收藏代码
  1. @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){  
  2.  super.onActivityResult(requestCode,resultCode,data);   
  3.  if(resultCode==1)   
  4. {  
  5.  //可从data中取出值   
  6. }   
  7. }   

 A.class中取出B.class中intent传过来的值






Activity中返回传值,也就是setresult方法

.除了A.class可以向B.class传值外,B.class也可以返回值

 A.class中

 this.startActivity(intent);

 改为this.startActivityFroResult(intent,1);//1为请求码

 B.class中

 对传过来的intent对象赋新值

Java代码  收藏代码
  1. intent.putExtra("username2",username2);   
  2. intent.putExtra("userpwd2",userpwd2);  
  3. this.setResult(1,intent);   
  4. this.finish();//结束焦点   

A.class中重写

 

 

Java代码  收藏代码
  1. @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){  
  2.  super.onActivityResult(requestCode,resultCode,data);   
  3.  if(resultCode==1)   
  4. {  
  5.  //可从data中取出值   
  6. }   
  7. }   

 A.class中取出B.class中intent传过来的值










setResultData()方法是在有序广播中修改传到下一个广播中的值,只能存储一个String.

SIMULIA-Simpack 2022x新功能介绍 增加库伦摩擦类型力元95 Coulomb Friction增加了3种新的摩擦方向类型用于模拟平面、圆柱和球面摩擦。针对平移和旋转摩擦改进了滑动到粘着过渡阶段的检测,增加一个参数定义两种不同的滑移-粘滞过渡模式,即“Unloaded stick stiffness”和“Preload stick with last slip”。新增加124'Applied Load’力元允许用户将力或扭矩作为恒定值或通过激励元素施加到To Marker点上。该力元建模操作方便,效率高。支持线性柔性体装配。 阅读详情

相关推荐

C语言|深入浅出讲解int转换为float全过程(附2017年统考大题案例)

int转换为float类型为什么会发生精度损失? 精度损失的详细过程究竟是什么样的? 什么样情况float会发生精度损失?没有弄懂2017年浮点数统考大题? 这一篇用2017年统考大题案例帮你更深的理解浮点数的存储规则。

DADONGOOO的博客 1万+

setResult的详解

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

qq_38042345的博客 1万+

聚类分析之——Kmeans算法(一)

原创地址:http://www.toutiao.com/i6399454239554273794/ 聚类分析是一种静态数据分析方法,常被用于数据挖掘、机器学习、模式识别等领域,聚类是一种无监督式的学习方法。它是在未知样本类别的情况下,通过计算样本彼此间的距离(欧式距离,马式距离,汉明距离,余弦距离等)来估计样本所属类别。从结构性来划分,聚类方法分为自上而下和自下而上两种方法。聚类的算法有很多

june2017的博客 3530

Android之setResult的用法

首先Activity:A跳转到Activity:B public static final int REQUEST_SEARCH = 100; Intent intent = new Intent(getActivity(), MapSearchDeviceActivity.class); startActivityForResult(intent, REQUEST_SEARCH); @O...

juer2017的博客 1万+

HyperMesh实战:用Field工具搞定复杂载荷映射(附TCL脚本示例)

本文深入探讨了HyperMesh中Field工具在复杂载荷映射中的高级应用,包括从CSV到有限元网格的温度场映射全流程、稀疏数据处理技巧及TCL自动化脚本示例。通过Field工具,工程师可以高效实现CFD温度场到结构网格的精准映射,显著提升有限元分析的精度与效率。

white的博客 265

基于51单片机的简易计算器设计(原理图+仿真+源代码+参考论文)

本设计以51单片机为核心,矩阵键盘输入数字,通过1602显示屏显示计算结果,能够实现整数的加、减、乘、除四则运算,具备清除功能。

u012759563的博客 7697

android广播接收器的无序广播和有序广播

android广播接收器的无序广播和有序广播

ShiXinXin_Harbour的博客 2980

战舰V3移植CANopenNode并驱动电机全流程

第三部分是电机的对象字典(也就是节点的OD)中的索引,长度2个字节。索引发送的是小段模式,比如这一部分为0X40 0X60,实际操作的索引地址为0X6040。第一部分是COB-ID,长度1个字节,电机的node-ID默认为0x01,所以报文ID一直是601。第五部分是要写入的数据,数据发送的时候是小端模式,低字节数据先发送,长度由第二部分决定。配置定时器6,时间为1ms,根据公式计算得到参数PSC取72-1,ARR取1000-1。第二部分是CMD,长度1个字节,其实就是数据部分的长度,

qq_50526837的博客 3045

Android 第二十八章 BroadcastReceiver

BroadcastReceiver 简介

weixin_43969550的博客 258

YOLOv8改进 | 融合篇,YOLOv8改进主干网络为MobileNetV4+CBAM注意机制+Powerful-IoU损失函数(2024 最新IOU),全网首发,实现极限涨点

本文将在 YOLOv8 主干中引入 MobileNetV4 轻量化骨干,同时,在检测头引入 CBAM机制注意力机制,并采用 Powerful-IoU 损失函数作为模型的损失函数,其中,MobileNetV4 通过引入通用反向瓶颈(UIB)搜索块和 Mobie MQA 注意力模块创新设计,实现了模型的轻量级化;同时,MobileNetV4 采用了优化的 NAS 策略,通过粗粒度和细粒度搜索相结合的方法,显著提高了搜索效率并改善了模型质量。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3783

如何在Ubuntu 22.04系统上安装CUDA 12.9

本文提供Ubuntu22.04系统上安装CUDA12.9的简明指南:1)确认已安装适配575驱动;2)清理旧版本后安装必需依赖库;3)通过deb包方式添加英伟达源并安装CUDA12.9工具包;4)配置环境变量;5)通过nvcc-V和nvidia-smi命令验证安装。文中包含常见问题解决方法及多显卡使用说明,全程约需10分钟完成安装。

2501_93651177的博客 1480

使用Result类封装返回结果

第一步:创建Result类,定义成功,失败及异常方法 ,使用@Data注解可以不用定义get和set方法。第二步:编写controller层的方法。

xuan__xia的博客 641

vxWorks下dosFs文件系统的创建

文件系统,是指操作系统根据目录和文件的组织形式在磁盘设备上应用的一种设备驱动,不同的文件系统对目录和文件有不同的限制(如目录名限制,文件大小限制等)。VxWorks支持多种文件系统,比较重要的有:1、dosFs:适用于块存取设备(比如硬盘、软盘),和MS-DOS文件系统兼容;2、rawFs:提供了一种简单的原始文件系统。该文件系统将整个硬盘当作一个单独的大文件;3、cdromFs:允许系统从按照I

技术联盟 1万+

C#笔记14 方法01

C#笔记14 方法01 ——本系列是基于人民邮电出版社《C#2008 C#图解教程》、清华大学出版社《C#入门经典(第五版)》两本书的自学C#笔记,如果您发现了本文的纰漏,还望不吝指正。 写在前边 在 C#笔记10 类:基础 中,我们已经知道,方法是类中重要的一个函数成员 除了类中,方法也可以声明在结构体,接口中 *复习:方法是具有名称的可执行代码块,当方法被调用时,它执行自己所含的代码,然后返回到调用它的代码。有些方法返回一个值到它们被调用的位置。 1. 方法的结构 在类的相关笔记中,我们已经知道了如何声

Tervor_HAN的博客 765

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android中的onActivityResult和setResult方法的使用

startActivityForResult(Intent intent, int requestCode) onActivityResult(int requestCode, int resultCode, Intent data) setResult(int resultCode, Intent data) 这三个函数,尤其要注意他们的参数! 现在有两个activity A和B

csh86277516的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android 提高接收广播的优先级,Android:广播优先级、sendOrderedBroadcast、拦截、abortBroadcast、setResultData、getResultData...

必须使用发送有序广播方法,广播优先级才有效:findViewById(R.id.button1).setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){Intent intent = new Intent();intent.setAction("com.example.aex56");intent...

weixin_36373381的博客 1393

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

setresult()java_java中setResult()是什么作用?

展开全部java基础知识基础知识:1.C++或Java中的636f707962616964757a686964616f31333264623137异常处理机制的简单原理和应用。当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;...

weixin_39849254的博客 827

【源码解析】Activity之setResult工作原理

Running&H的博客 1029

Android Activity利用setResult赋值

//传值 getIntent().putExtra("useraddress",userAddressBeanList.get(position)); //必须在finish()前调用,否则10的resultCode会默认成为0 setResult(10,getIntent()); finish(); 接收的区域复写: @Override protected void on...

a1003434346的博客 2448

android中setResult的调用时机

最近在做项目的过程中有需要用到返回值,但是由于需求比较复杂,感觉把setResult放到onStop中比较方便,但是发现在onStop中写入setResult(。。。)和finish()之后,跟本就不会回传值,后来又试了onPaulse和onDestroy均是不可以。 后来发现是因为错过了onActivityResult的调用时机,拿A跳转到B,B返结果给A作示例:因为在 B 退回 A过程中,首

Eric的博客 3189

startActivityForResult、setResult、onActivityResult用法精炼详解

一、前期基础知识储备 (1)ActivityManger管理Activity启动 startActivity(Intent intent),启动一个Activity最简单的方式。我们可能会以为startActivity()是一个类方法,启动activity就是针对activity的子类调用该方法。实际并非如此。Activity调用startActivity()方法时,调用请求实际发给了操作...

Chin_Style的博客 9165

Android开发基础 startActivityForResult()、onActivityResult()和setResult()方法之间的联系

在以前开发的时候,只是使用过,知道如果要是想从上一个Activity中得到处理的一些状态需要调用这几个方法,但是这几个方法中的参数老是记忆的很混乱,今天在开发项目的时候,忽然想到了一些东西,特意记下免得以后再忘记了。 简介 startActivityForResult(Intent intent, Int requestCode) setResut(int resultCode, I

L_zhp的博客 3596

Android基础 —— Broadcast 使用

Android Broadcast 使用

CFOX 844

Android:广播优先级、sendOrderedBroadcast、拦截、abortBroadcast、setResultData、getResultData...

必须使用发送有序广播方法,广播优先级才有效: 1 2 3 4 5 6 7 8 9 10 11 12 findViewById(R.id.button1).setOnClickListener(newOnClickListener() { ...

weixin_34198453的博客 770

Activity的数据传递(startActivityForResult , onActivityResult , setResult 的用法)

Activity的数据传递(startActivityForResult , onActivityResult , setResult 的用法)

qq_36570506的博客 1188
上一篇: activity间的传值
下一篇: TCP三次握手以及释放连接
Manaasdfasdf
博客等级 码龄11年 131粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值