Android Activity启动与返回结果详解
"Activity实例详解,重点介绍如何启动一个Activity并获取其返回的结果。通过使用startActivityForResult()方法启动新Activity,并在原Activity中重写onActivityResult()来接收返回的数据。" 在Android应用开发中,Activity是应用程序的基本组件,它负责用户界面的交互。当我们需要在一个Activity启动另一个Activity并期待得到一些返回结果时,就需要使用特定的方法和技术。本篇内容将详细阐述如何在Android中实现这一功能。 首先,启动一个Activity并期望获得结果,我们需要使用`startActivityForResult(Intent intent, int requestCode)`方法。这里的`Intent`参数是用来创建并传递到新Activity的意图,它包含了启动新Activity所需的信息。`requestCode`是一个整数值,用于在`onActivityResult()`中区分不同的请求,你可以根据业务需求自定义这个值。 下面是一个简单的示例代码: ```java public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnOpen = (Button) this.findViewById(R.id.btnOpen); btnOpen.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // 使用startActivityForResult启动OtherActivity,请求码为1 startActivityForResult(new Intent(MainActivity.this, OtherActivity.class), 1); } }); } / * 在原Activity中重写onActivityResult方法来接收返回的数据 * * requestCode:请求码,与startActivityForResult()中传入的相同 * resultCode:新Activity返回的结果码,用来标识返回数据的状态 * data:携带返回数据的Intent */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { // 检查请求码是否是我们期望的那个 if (resultCode == RESULT_OK) { // 结果码表示新Activity正常结束 // 从data中获取返回的数据,例如通过data.getStringExtra()或data.getIntExtra()等方法 String result = data.getStringExtra("key"); Log.d(TAG, "Received result: " + result); } else if (resultCode == RESULT_CANCELED) { // 结果码表示新Activity被取消 Log.d(TAG, "Activity was canceled"); } } } } ``` 在新启动的Activity(如`OtherActivity`)中,当用户完成操作并需要返回结果时,通常会调用`finish()`方法并附带结果。例如: ```java Intent returnIntent = new Intent(); returnIntent.putExtra("key", "返回的数据"); setResult(RESULT_OK, returnIntent); // 结果码RESULT_OK表示成功,RESULT_CANCELED表示取消 finish(); // 关闭当前Activity ``` 这样,当`OtherActivity`关闭时,`MainActivity`的`onActivityResult()`方法会被调用,我们可以在这里处理返回的数据。 总结起来,启动Activity并获取返回结果的关键在于: 1. 使用`startActivityForResult(Intent intent, int requestCode)`启动新Activity。 2. 在新Activity中设置返回结果,并调用`setResult()`。 3. 在原Activity中重写`onActivityResult()`方法,通过`requestCode`和`resultCode`检查并处理返回的数据。 这个过程在Android应用开发中非常常见,比如用于选择照片、输入数据等场景。理解并熟练掌握这一机制对于编写功能丰富的应用程序至关重要。
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 3
- 资源: 926
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦