
使用startActivityForResult与onActivityResult进行Activity交互

"Activity跳转是Android应用开发中的重要概念,涉及到不同Activity之间的交互和数据传递。当需要从一个Activity启动另一个Activity以获取用户输入,然后返回原始Activity时,可以使用startActivityForResult(Intent, int)方法。这个方法的第二个参数Request Code用于区分不同事件的返回,由开发者自定义。新启动的Activity通过setResult(int, Intent)设定返回结果,其中Result Code用来表示操作状态,通常包括RESULT_CANCELED(0)和RESULT_OK(-1)。RESULT_OK的值为-1是为了保留所有大于0的数字供用户自定义,因为通常大于0代表成功,小于0代表失败,但Android采用了相反的约定,需特别注意。"
在Android应用中,Activity是用户界面的主要组件,它们之间可以通过多种方式切换。通常,Activity之间的切换是通过startActivity(Intent)完成,但这种方式无法直接将数据返回给启动它的Activity。而startActivityForResult(Intent, int)则提供了一个解决办法,使得新启动的Activity能够将结果传递回发起请求的Activity。
在startActivityForResult(Intent, int)方法中,传入的Intent对象用于启动新的Activity,而int参数是Request Code,它作为一个标识符,用于在onActivityResult(int, int, Intent)回调方法中区分不同的请求来源。例如,在通讯录应用中,可能有添加、编辑和删除联系人的多个事件,Request Code可以帮助识别这些事件的结果。
新启动的Activity在完成任务后,通过调用setResult(int, Intent)设置返回状态和数据。Result Code的值可以是预定义的常量,如RESULT_CANCELED(0)表示操作被取消,通常是用户按下设备的返回键;RESULT_OK(-1)表示操作成功。值得注意的是,虽然在许多系统中,正值通常表示成功,负值表示失败,但Android反其道而行,使用-1表示成功,0表示失败。此外,RESULT_FIRST_USER(1)及以上数值留给开发者自定义,以满足更复杂的业务逻辑。
在onActivityResult(int, int, Intent)方法中,第一个参数是Request Code,用于匹配启动Activity时设置的Request Code,第二个参数是Result Code,用于判断操作结果,第三个参数是返回的Intent,可以携带返回的数据。开发者需要在这里处理返回的结果,根据Result Code做出相应的处理,例如更新UI或执行其他业务逻辑。
Activity间的跳转和数据传递是Android应用开发中不可或缺的部分。通过理解并熟练运用startActivityForResult()和setResult(),开发者可以创建出更加交互友好且功能丰富的应用程序。在实际开发过程中,务必注意Result Code的特殊性,避免因误解导致的错误处理。
相关推荐







leiwenqing_1982
- 粉丝: 0
最新资源
- Android原生HTMLViewer应用深度解析
- 安卓注解轻松入门:纯示例教程
- SQL Server解挂工具使用教程:一键解决安装挂起问题
- 桥接模式基础教程:案例源码解析
- 掌握注册表操作:IE信任站点与ActiveX启用指南
- C#班级娱乐系统课程设计源码解析
- WRF播放器64位版本下载使用指南
- 电力载波集中器抄表程序:终端多功能抄表能力解析
- 动易系统Powereasy标准版:简易建站新选择
- C#实现UDP通信协议简易教程
- Android常用类库整理:AccessibilityService详解
- ThinkPad X230s笔记本Windows Server 2012 R2网卡驱动安装指南
- 基于SSH框架的ItcastOA办公系统项目实践
- JSP项目开发:都市供求信息网全攻略
- 石家庄信息技术中考专用软件介绍
- Zencart 13款精选高端模板下载,附预览图
- 揭秘Android布局:一款实用反编译工具介绍
- 千寻搜索引擎需求与设计概览
- 笔记本风扇控制新方案TPFanControl
- C8051F35x系列单片机24位ADC测量示例程序解析
- Android平台记事本应用:功能跳转与使用体验
- OpenReports开发全攻略:Web报表生成与文件下载
- 微机原理与接口学习辅助课件
- 掌握Maven与Wink实现RESTful服务:GET请求参数传递