Advertisement

如何使用 startActivityForResult 的详细说明。

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:RAR


简介:
在Android应用开发中,`startActivityForResult`方法至关重要,它负责启动一个新的Activity,并期望接收返回结果。该方法广泛应用于不同Activity间的通信,例如获取用户的选择或处理权限申请等。具体而言,我们经常会看到其在实践中的运用,比如通过`startActivityForResult`来检索设备的通讯录中的电话号码信息。接下来,我们将对`startActivityForResult`的使用方式进行更为详细的阐述,并重点探讨其在获取通讯录信息方面的具体应用。 让我们深入探讨`startActivityForResult`的底层语法结构: ```java Intent intent = new Intent(this, SecondActivity.class); startActivityForResult(intent, REQUEST_CODE); ``` 该变量 `REQUEST_CODE` 是一种用户自定义的整数标识,其主要作用在于明确区分来自不同请求的数据。当第二个活动执行完毕并向主活动返回结果时,系统利用这个代码值来识别具体哪个请求对应的返回值。 在第二个活动中,例如我们当前要处理通讯录的活动,通常会进行一系列操作,譬如读取联系人信息。为了完成这些任务,需要借助`ContentResolver`和`ContactsContract`这两个类。下面展示了查询通讯录并从中选取一个电话号码的具体示例: ```java Uri contactsUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; Cursor cursor = getContentResolver().query(contactsUri, null, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 可以在这里处理获取到的电话号码 } cursor.close(); } ``` 操作执行完毕之后,以便将返回结果传递给发起请求的程序,我们需要调用`setResult`方法。 ```java Intent resultIntent = new Intent(); resultIntent.putExtra(selected_number, selectedNumber); setResult(RESULT_OK, resultIntent); finish(); ``` 其中,`RESULT_OK`表明操作已成功完成,同时也可以采用`RESULT_CANCELED`来指示操作被取消。`resultIntent`则是一个包含了返回信息的Intent。 现在,我们重新审视最初的Activity,其中关键在于重构`onActivityResult`方法,以便能够接收并处理返回的数据结果。 ```java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) { String selectedNumber = data.getStringExtra(selected_number); 在这里处理获取到的电话号码 } } ``` 通过对请求代码、结果代码以及返回的数据Intent的仔细核查,我们着重验证它们是否完全符合我们所设定的预期标准。 总结而言,`startActivityForResult`是Android平台中一种关键的交互方式,它允许启动一个活动并等待其返回的结果。例如,在需要获取通讯录信息的情况下,可以启动一个新的活动来展示通讯录列表,从而为用户提供选择联系人的功能。随后,选定的电话号码会被通过`setResult`传递回启动该活动的原始活动。在原始活动的`onActivityResult`方法中,开发者可以成功地检索到返回的电话号码,并进而进行进一步的操作。 这种方法极大地简化了不同活动之间的数据交换过程,并确保了其有序性。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • DataGrip连接MS SQL Server
    优质
    本教程将详细介绍如何使用DataGrip这款强大的数据库集成开发环境(IDE)来建立与Microsoft SQL Server的数据连接,并进行高效的数据管理和查询操作。 本段落详细介绍了如何将DataGrip连接到MS SQL Server的方法,并通过示例代码进行了详细的讲解。内容对学习或工作中有参考价值的读者来说非常实用。需要了解相关内容的朋友可以继续阅读,跟随文章一起学习吧。
  • 查看 Docker 容器资源使情况
    优质
    本文将详细介绍如何监控和分析Docker容器的资源消耗,包括CPU、内存、磁盘I/O和网络流量等指标。通过学习这些方法,您可以更好地优化容器性能并确保其稳定运行。 本段落详细介绍了如何查看 Docker 容器使用的资源,并分享了相关的方法和技巧,希望能对大家有所帮助。
  • TestLink使
    优质
    本指南详细介绍了如何使用TestLink进行测试管理,包括项目设置、需求跟踪及报告生成等操作,帮助用户快速上手并精通TestLink。 TestLink是一款用于测试过程管理的工具,它能够帮助用户从测试需求、设计到执行进行全面管理和跟踪,并提供多种统计与分析功能来简化测试工作及结果分析。作为开源项目之一,TestLink具有以下主要功能:测试需求管理;测试用例管理;确保测试用例覆盖所有相关的需求;制定详细的测试计划;执行和记录测试用例的结果;以及进行大规模数据的度量和统计。
  • Jlink使
    优质
    本手册详尽介绍了J-Link调试器的各项功能和操作方法,旨在帮助开发者高效进行嵌入式系统开发、调试与测试。 J-Link是SEGGER公司推出的一款用于支持ARM内核芯片的JTAG仿真器。它与IAR EWARM、ADS、KEIL、WINARM以及RealView等多种集成开发环境兼容,能够为所有基于ARM7/9/11和Cortex M0/M1/M3/M4及Cortex A4/A8/A9等内核的芯片提供仿真支持。J-Link与IAR和Keil编译器无缝连接,操作简便、易于学习,是进行ARM开发的最佳实用工具之一。
  • 关于RemoteService使
    优质
    本文档提供了关于如何使用RemoteService的详尽指南,包括其功能、应用场景及配置方法,旨在帮助开发者充分利用此服务。 本段落提供了Service端和Client端的完整代码及详细注释,并深入讲解了RemoteService的使用方法以及需要注意的问题。
  • WPF控件使
    优质
    本教程提供关于如何使用WPF(Windows Presentation Foundation)的各种控件进行界面设计和开发的详尽指导。 WPF控件使用说明:XAML是一种声明性标记语言,在.NET Framework编程模型中的应用简化了创建UI的过程。您可以在声明性的XAML标记中定义可见的UI元素,并通过代码隐藏文件(利用部分类来连接标记与逻辑)将UI定义和运行时逻辑分离。XAML直接表示程序集中一组特定类型的对象实例化,这与其他通常不直接关联于类型系统的解释性标记语言不同。XAML支持一个工作流程,在此过程中不同的工具可以处理应用程序的用户界面和业务逻辑部分。
  • Android中Banner使
    优质
    本篇文章将详细介绍在Android开发中如何使用Banner(轮播图)组件,包括其功能、实现方式以及常见问题解决方案。 首先导入一个依赖:compile com.youth.banner:banner:1.4.9 并添加以下权限: 在布局文件中使用如下代码:
  • PyTorch多GPU使
    优质
    本教程深入讲解如何在PyTorch中利用多个GPU进行高效训练和加速深度学习模型开发的技术细节与实践方法。 今天为大家分享一篇关于如何使用多块GPU的Pytorch教程,内容详实且具有很高的参考价值,希望对大家有所帮助。一起跟随文章深入了解一下吧。
  • Yarn安装和使
    优质
    本教程详细介绍如何在项目中安装和使用Yarn,涵盖其基本概念、安装步骤及常用命令,帮助开发者高效管理JavaScript依赖包。 Yarn 是一个用于管理代码的包管理器,它允许你与世界各地的开发者共享和使用代码。Yarn 能够快速、安全且可靠地完成这些操作,让你无需担心任何问题。当你下载了一个包后,就不再需要重新下载了,并且确保在不同的系统中也能正常工作。 对于 MacOS 用户来说,在 Mac 上安装 Yarn 相对简单快捷,可以通过初始化脚本来实现。