掌握Android Activity间数据传递:onActivityResult详解

0 下载量 151 浏览量 更新于2024-08-31 收藏 128KB PDF 举报
在Android学习过程中,理解如何在应用程序内部不同Activity之间传递数据是一项基本技能。本文将深入探讨在Android中实现这一功能的具体步骤,特别是在当前Activity(MainActivity)中通过启动另一个Activity(AnotherActivity)并接收返回的数据。主要涉及的知识点包括: 1. Activity启动与结果传递: - 主Activity(MainActivity)中,有一个包含一个Button(btnSend)和一个TextView(textView)。当用户点击Button时,会触发一个新的Intent,这个Intent用于启动AnotherActivity。 - 使用`startActivityForResult()`方法启动另一个Activity,传入一个请求码(requestCode),这是为了在AnotherActivity执行完毕后能正确识别返回的数据。这里设置的requestCode为0,但实际开发中建议根据需求自定义。 2. onActivityResult()方法的使用: - 在MainActivity中,重写了`onActivityResult()`方法,这是Activity间通信的关键方法。当启动的Activity执行完毕并通过`setResult()`方法返回数据时,系统会自动调用此方法。 - 方法接受三个参数:requestCode(启动Activity时使用的请求码)、resultCode(表示操作结果,比如Activity.RESULT_OK或Activity.RESULT_CANCELED)以及Intent对象(包含了传回的数据)。 - 当`requestCode`与之前启动Activity时的请求码匹配时,程序会检查`resultCode`,如果结果为预期,例如Activity.RESULT_OK,就从Intent的`getStringExtra()`方法中取出数据,并将其显示在TextView上。 3. XML布局设计: - activity_main.xml文件定义了MainActivity的UI,其中TextView和Button的引用分别通过`findViewById()`方法获取。Button的onClick事件处理器设置了一个匿名内部类,当点击时启动另一个Activity。 4. 数据传递机制: - Android的数据传递可以通过Intent对象,可以包含各种类型的数据,如字符串、整数、布尔值等。在这个例子中,AnotherActivity通过`setResult()`方法将数据以字符串形式存储在Intent的"extra"键(key)下,键名为"data"。 总结来说,学习如何在Android应用中启动Activity并传递数据,对于构建复杂的应用逻辑至关重要。通过`startActivityForResult()`与`onActivityResult()`的配合,我们可以有效地在不同的Activity之间传递和处理数据,实现应用程序之间的交互。这不仅是Android开发中的基础知识,也是构建跨页面逻辑流程的核心环节。