Android startActivityForResult实例详解

发布时间 - 2026-01-11 01:02:26    点击率:

Android startActivityForResult实例详解

startActivityForResult用于两个activity之间的数据传递,Activity1传值给Activity2,Activity2再返回值给Activity1。

第一步:Activity1中:startActivityForResult(Intent intent, Int requestCode)

Intent intent = new Intent();
intent.setClass(Activity1.this,Activity2.class);
Bundle bundle = new Bundle();
intent.putExtras(bundle);
bundle.putString("abc", "bbb");
startActivityForResult(intent, 0);
// 跳转并要求返回值,0代表请求值(可以随便写,但一定要>=0)

第二步:Activity2中:setResult(int resultCode, Intent intent)回传数据时采用setResult方法,并且之后Activity2中要调用finish方法。

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String bbb=bundle.getString("abc");//接收A的数据

bundle.putString("aaa", "back");//返回给A的数据
intent.putExtras(bundle);
this.setResult(Activity.RESULT_OK, intent);
//1、结果码可以自定义但必须大于等于0,
//如果B子模块可能有几种不同的结果返回,
//可以用这个参数予以识别区分。还有个特殊的 RESULT_OK 值,没有特殊情况用它就好了。
//返回码可以是ESULT_CANCELED, RESULT_OK, or any custom values starting at RESULT_FIRST_USER。
//如果,调用的child activity失败,这个parent activity 将会收到的返回码是RESULT_CANCELED.
//2、intent为A传来的带有Bundle的intent,当然也可以自己定义新的Bundle的intent
this.finish();
//Activity2调用finish()方法之后才能返回数据到Activity1

第三步:Activity1中:返回数据,重写onActivityResult(int requestCode, int resultCode, Intent intent)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 super.onActivityResult(requestCode, resultCode, data);
 if (requestCode == 0 && resultCode == Activity.RESULT_OK) {
  Bundle bundle = data.getExtras();
  gameView.backString = bundle.getString("aaa");
  Toast.makeText(this, backString, Toast.LENGTH_SHORT).show();
 }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # startActivityForResult  # startActivityForResult详解  # Android startActivityForResult的调用与封装详解  # Android startActivityForResult的基本用法详解  # Android利用startActivityForResult返回数据到前一个Activity  # Android startActivityForResult和setResult的区别  # Android基础之startActivityForResult()的用法详解  # Android startActivityForResult()代替方案示例  # 返回值  # 有个  # 将会  # 可以用  # 希望能  # 能有  # 几种  # 自定义  # 重写  # 跳转  # 谢谢大家  # 用它  # 第二步  # 中要  # 第三步  # 回传  # 就好了  # 求值  # bbb 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何使用withoutEvents方法临时禁用模型事件  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  大连 网站制作,大连天途有线官网?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  香港服务器租用费用高吗?如何避免常见误区?  如何安全更换建站之星模板并保留数据?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel怎么调用外部API_Laravel Http Client客户端使用  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  网站制作大概多少钱一个,做一个平台网站大概多少钱?  香港服务器选型指南:免备案配置与高效建站方案解析  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何在阿里云部署织梦网站?  手机网站制作与建设方案,手机网站如何建设?  香港服务器如何优化才能显著提升网站加载速度?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  如何在云主机上快速搭建多站点网站?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  JavaScript如何实现路由_前端路由原理是什么  如何在阿里云域名上完成建站全流程?  Laravel如何创建自定义Artisan命令?(代码示例)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  详解vue.js组件化开发实践  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  北京的网站制作公司有哪些,哪个视频网站最好?  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  php json中文编码为null的解决办法  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Thinkphp 中 distinct 的用法解析  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Python文本处理实践_日志清洗解析【指导】  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  移动端脚本框架Hammer.js  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何在景安服务器上快速搭建个人网站?