使用startActivityForResult与onActivityResult进行Activity交互
4星 · 超过85%的资源 需积分: 10 183 浏览量
更新于2024-09-18
收藏 349KB DOC 举报
"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的特殊性,避免因误解导致的错误处理。
2020-08-30 上传
2017-09-02 上传
2013-06-14 上传
2015-08-10 上传
2012-05-24 上传
2015-01-20 上传
2013-12-22 上传
2013-01-27 上传
leiwenqing_1982
- 粉丝: 0
- 资源: 41
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍