Android Activity之间跳转与传值

2023-05-16

一、Activity跳转与传值,主要是通过Intent类来连接多个Activity,通过Bundle类来传递数据。

最常见最一般的页面跳转代码,很简单,如下:

  Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
  startActivity(intent);

或者:

   Intent intent = new Intent();
   intent.setClass(FirstActivity.this, SecondActivity.class);
   startActivity(intent);

 

二、在跳转页面时还需要传递数据,这个时候如何做呢?

如果数据比较少,比如只要传一个名字,那么只要加一句"intent.putExtra("Name", "ppy2790");"即可,代码如下:

   Intent intent = new Intent();
   intent.setClass(FirstActivity.this, SecondActivity.class);
   intent.putExtra("Name", "ppy2790");
   startActivity(intent);


如果数据比较多,就需要使用 Bundle类了,代码如下:
  Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
  
  /* 通过Bundle对象存储需要传递的数据 */
  Bundle bundle = new Bundle();
  /*字符、字符串、布尔、字节数组、浮点数等等,都可以传*/
  bundle.putString("Name", "ppy2790");
  bundle.putBoolean("Ismale", true);
  
  /*bundle对象assignIntent*/
  intent.putExtras(bundle);
  
  startActivity(intent);

 

三、在另一个Activity 获取值
以上我们讲的都是如何进行页面跳转及数据传递,那么在另一个页面SecondActivity上,应该如何接收数据呢?

FirstActivity页面上是以Bundle封装了对象,自然在SecondActivity页面也是以Bundle的方式来解开封装的数据。主要通过"getIntent().getExtras()"方法来获取Bundle,然后再从Bundle中获取数据。 也可以通过" this.getIntent().getStringExtra("Name");"方法直接从Intent中获取数据。

Bundle获取数据的代码:

 @Override
  public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         /*加载页面*/
         setContentView(R.layout.main);
         
         /*获取Intent中的Bundle对象*/
         Bundle bundle = this.getIntent().getExtras();
         
         /*获取Bundle中的数据,注意类型和key*/
         String name = bundle.getString("Name");
         boolean ismale = bundle.getBoolean("Ismale");
         
 }

 

四、有时,在页面跳转之后,需要返回到之前的页面,同时要保留用户之前输入的信息,这个时候该怎么办呢?

在页面跳转后,前一个Activity已经被destroy了。如果要返回并显示数据,就必须将前一个Activity再次唤醒,同时调用某个方法来获取并显示数据。

要实现这个效果,需要做以下几步:

1. 首先,从FirstActivity页面跳转到SecondActivity页面时,不可以使用"startActivity()"方法,而要使用"startActivityForResult"方法。

2. FirstActivity页面的Activity中,需要重写"onActivityResult"方法
 @Override
 protected void onActivityResult(int requestCode,int resultCode,Intent data){
  
  switch(requestCode){
  case RESULT_OK:
   /*取得来自SecondActivity页面的数据,并显示到画面*/
   Bundle bundle = data.getExtras();
   
         /*获取Bundle中的数据,注意类型和key*/
         String name = bundle.getString("Name");
         boolean ismale = bundle.getBoolean("Ismale");
  }
 }

SecondActivity页面上加一个返回按钮,并在事件写如下代码:

/*给上一个Activity返回结果*/
SecondActivity.this.setResult(RESULT_OK,intent);
/*结束本Activity*/
SecondActivity.this.finish();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Activity之间跳转与传值 的相关文章

  • 如何在android中的视频视图中获取视频的总长度

    我有一个问题 我想获取在视频视图中运行的视频的总长度 为此我正在使用视频视图的 getDuration 方法 但当我将其与 currentPosition 进行比较时 它总是返回 1 实际上我希望如果视频的当前位置等于视频的总长度那么它应该
  • android:应用内计费:错误响应:7:项目已拥有

    我正在学习为我的应用程序实现应用程序内计费 以便人们可以在按下捐赠按钮时捐赠美元 用户可以多次捐赠 即购买的是消耗品 下面的代码来自 TrivalDrive 示例和网上的一些教程 Code IabHelper mHelper static
  • 应用程序从最近的应用程序列表中滑出后,Android 服务崩溃

    我有一项由活动启动 未绑定 的服务 如果活动被破坏 例如按后退按钮 服务将继续运行 这当然是有意的 但是 如果我将活动从 最近的应用程序 列表中删除 该服务将立即重新启动 这是可重现的 每次活动 应用程序从列表中滑出时 都会对服务的 onC
  • Android + XAMARIN + 强制屏幕保持“纵向”模式(使用 AndroidManifest)

    我在这里阅读了这个问题的一些答案 但不知何故我无法让它发挥作用 我的 AndroidManifest xml 如下所示
  • 在显示之前在后台加载 Activity

    在将视图切换到该活动之前 是否可以在后台加载新活动 例如 我想要一个被调用并显示启动屏幕的斜杠屏幕活动 当显示此启动屏幕时 将加载下一个活动 当加载完成时 当 onCreate 完成时 启动屏幕活动结束 并显示新的活动 我知道另一个选择是在
  • Android SDK 中缺少 Gradle(使用 cordova + ionic)

    是的 我搜索了这个 但没有搜索到任何内容 只是有关 ANDROID HOME 路径的信息 但就我而言 我认为这不是真正的问题 当我尝试做的时候ionic build android我收到这个错误 错误 在 android sdk 中找不到
  • Android - GC 滞后于列表视图滚动“更大”的图像

    在列表视图中 我想在列表条目上绘制一个图像 这 20 张图像必须缩放以填充垂直模式的宽度 手机分辨率为 480 x 800 像素 SGS2 图像分辨率为 400x400 大小约为 100KB 我已将图像放在可绘制文件夹中 当我滚动列表时 它
  • 原生编程对于移动开发有何优势?

    我需要为一家公司在一些主要的移动操作系统上开发应用程序 特别是 iOS Android 和 WP7 我最初计划为三种不同的操作系统编写三个独立的应用程序 每个应用程序都使用本机 SDK 然而 这样做有什么好处吗 有许多可用的跨平台工具 Se
  • 使用 Bixolon R200 进行打印的 Android 应用程序

    我正在开发一个 Android 应用程序 用于使用 Bixolon R200 进行打印 我在工作中使用 bxlprint jar 的类 当我想打印波斯字符串时 打印机打印奇怪的字符 我使用UTF 8和UTF 16进行编码 你能帮我吗 Str
  • 将 Android 应用程序与服务器上的 Matlab 应用程序连接

    我正在 Android 上开发一个应用程序 它将获取图像输入 并将该输入传递到安装 MATLAB 应用程序的服务器 MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序 我想知道我可以使用哪个服务器 如何将 MATLAB
  • Android GLSurfaceView 具有可绘制背景

    我有一个带有可绘制对象作为背景的 GLSurfaceView 但是在没有 surfaceView setZOrderOnTop true 的情况下渲染时只有背景可见 我需要避免使用 setZOrderOnTop true 因为在 GLSur
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • Android - 向 Android 的内置应用程序添加菜单项

    我想在 联系人 菜单中添加按钮或菜单项 是否可以 我使用 Android 2 2 和 Eclipse 3 6 1 不可以 内置 Android 应用程序不支持菜单中的意图选项 即您无法向其中添加任何内容
  • 在Android Dialog中,如何为startActivityForResult设置onActivityResult?

    从活动中 我可以轻松设置onActivityResult 并打电话startActivityForResult 一切正常 现在 我需要打电话startActivityForResult 从对话框中 但我无法设置onActivityResul
  • 如何打开相机然后切换到图像模式(反之亦然)

    就我而言 我想拍照或捕捉视频 实际上 如果我创建单独的意图 我可以做到这些 我的意思是我可以将相机打开为图像模式或视频模式 但无法在它们之间切换 这与我使用的意图过滤器有关吗 我应该怎么办 我如何在它们之间切换 我有同样的问题 在我想放置一
  • Android相对布局放置问题

    我在 XML 中为列表项创建相对布局以用于 ListView 中的一系列项目时遇到问题 我已经尝试了几个小时 并且正在撕扯我的头发 试图让它看起来像我想要的那样 但无法让所有东西都出现在正确的位置 而不是重叠或错位 我可以获取第一张图像和接
  • 如何在屏幕的某些位置对齐视图,并在多种屏幕分辨率下保持一致?

    我在调整按钮时遇到了一些问题 我想把它们放在屏幕的 大约 1 3 和 2 3 处 我在下面提供了一个屏幕截图 以使事情更加清晰 我的代码如下
  • 如果使用推送服务关闭应用程序,应用程序会崩溃:parse.com

    我将清单中的接收器替换为我的
  • onActivityresult 数据为空

    这是我的相机应用程序 我想在其中捕获图像并裁剪它 但它拍照保存在我的 myimage 目录中 但不执行裁剪功能 请我需要帮助 我是这个领域的新人 这是我的相机开源代码 Intent intent new Intent MediaStore
  • Eclipse 中的 Android 框架源码级调试

    Android 框架的 Java 源代码可从 source android com 获取 我可以下载它们并将其提供给 Eclipse 以便在调试时进入框架方法吗 更好的是 有人知道 Eclipse 插件可以根据需要自动从 Android G

随机推荐

  • STM32RTC秒中断--基于HAL库(一文看懂如何配置并使用)

    文章目录 前言一 CubeMX配置 RTC相关 1 使能RTC xff1a 2 进制配置 xff1a 3 初始时间配置 xff1a 4 日期配置 5 闹钟配置 二 代码1 获取时间2 设置闹钟3 闹钟中断函数 三 实验结果总结 前言 相关说
  • STM32LCD--基于HAL库(选中高亮?一文看懂如何玩转高亮显示)

    文章目录 前言一 LCD上的坐标这个坐标是怎么确定的 xff1f X轴Y轴 二 高亮显示类型三 部分真题要求解析四 如何高亮显示选中数据五 代码分析总结 前言 相关说明 xff1a 开发板 xff1a CT117E M4 STM32G431
  • STM32MP157实现串口接收数据上云-MP157串口测试

    文章目录 前言一 需要软件二 minicom配置三 功能选择四 发送数据结语 前言 本篇分享 xff1a 这次将会用几篇博客分享STM32MP157实现串口接收数据上云的一个基础功能 xff0c 实现STM32MP157的串口在接收到数据时
  • STM32MP157实现串口接收数据上云-云数据库存储多设备数据&界面显示实现

    文章目录 前言一 软件安装二 代码改进1 串口接收2 JSON数据解析 三 云产品流转1 作用2 自定义产品功能 amp 添加设备3 创建数据传输规则 四 MYSQL操作五 NODE RED操作1 总体思路2 安装节点3 节点配置4 页面布
  • TX2

    目录 1 Jetson TX2简介2 使用前准备2 1显示2 2控制2 3电源2 4开机2 5系统2 6使用图形界面2 7系统更新 xff0c 安装模块3 对外接口 xff1a 4 软件包配置JetPack4 1使用JetPack 5 TX
  • Linux应用编程-音频应用编程-语音转文字项目

    文章目录 前言Linux语音识别alsa lib简介 xff1a 安装alsa lib库 xff1a libcurl库简介 xff1a 安装libcurl库 xff1a API调用录音相关概念样本长度 xff08 Sample xff09
  • STM32MP157-QT-串口调试助手设计

    文章目录 前言STM32MP157串口调试助手widget uipro文件widget h头文件槽函数成员声明 widget cpp头文件扫描串口并添加到下拉列表串口配置参数获取配置参数 打开 关闭串口读取数据信号读数据函数代码 发送数据清
  • Linux-VIM使用

    文章目录 前言VIM使用1 切换模式2 跳转 1 跳转到指定行 2 跳转到首行 3 跳转到末行 3 自动格式化程序4 大括号对应5 删除 xff08 1 xff09 删除一个单词 xff08 2 xff09 删除光标位置至行尾 xff08
  • JAVA学习记录

    文章目录 前言Pta做题样例做题样例 命名规范 amp 代码风格基本数据类型基本语法类变量类函数关系运算 浮点数 xff08 实型 xff09 数组Java定义数组Java程序遍历整个数组使用FOR EACH循环输出整个数组 循环使用对象字
  • STM32G431-基于HAL库(第十四届蓝桥杯嵌入式模拟题2)

    文章目录 前言一 CubeMX配置 第十四届模拟题2完整版 二 代码相关定义 声明1 函数声明2 宏定义3 变量定义 三 主要函数1 按键扫描2 各参数控制3 LCD显示4 输出信号改变5 串口接收6 Main函数 四 实验结果1 数据页1
  • 线性控制理论纵横

    线性控制理论是系统与控制理论中最为成熟和最为基础的一个组成分支 xff0c 是 现代控制理论的基石 系统与控制理论的其他分支 xff0c 都不同程度地受到线性控制 理论的概念 方法和结果的影响和推动 线性系统理论的研究对象为线性系统 xff
  • 非线性控制理论的发展

    人类认识客观世界和改造世界的历史进程 xff0c 总是由低级到高级 xff0c 由简单到复 杂 xff0c 由表及里的纵深发展过程 在控制领域方面也是一样 xff0c 最先研究的控制系统 都是线性的 例如 xff0c 瓦特蒸汽机调节器 液面
  • 如何正确使用电烙铁

    焊接技术是一项无线电爱好者必须掌握的基本技术 xff0c 需要多多练习才能熟练掌握 1 选用合适的焊锡 xff0c 应选用焊接电子元件用的低熔点焊锡丝 2 助焊剂 xff0c 用25 的松香溶解在75 的酒精 xff08 重量比 xff09
  • 2.13 STM32 串口传输最佳处理方式 FreeRTOS+队列+DMA+IDLE (一)

    当多个串口数据都有大量数据来时 我们如何最佳处理STM32串口通信数据 可以通过FreeRTOS 队列的发送方式 下面将串口DMA发送处理过程 中心思想 1 建立一个大的环形数组 2 发送的数据时 将数据存入到大的数组 3 需要发送数据的长
  • 最流行的开源飞控项目ArduPilot Mega(APM)介绍及发展历史

    ArduPilotMega APM 是市面上最强大的基于惯性导航的开源自驾仪 特性包括 免费开源固件 xff0c 支持飞机 xff08 34 ArduPlane 34 xff09 xff0c 多旋翼 四旋翼 六旋翼 八旋翼等 直升机 xff
  • 解密Apache HAWQ ——功能强大的SQL-on-Hadoop引擎 [作者:常雷]

    作者 xff1a 常雷 博士 xff0c Pivotal中国研发中心研发总监 xff0c HAWQ并行Hadoop SQL引擎创始人 xff0c Pivotal HAWQ团队负责人 xff0c 曾任EMC高级研究员 专注于大数据与云计算领域
  • 超简单的麻将算法

    麻将的算法 提高篇 1 先说说 xff0c 数值的构成 类型字 0 xff1a 东南西北中发白 1 xff0c 2 xff0c 3 xff0c 4 xff0c 5 xff0c 6 xff0c 7 类型万 1 xff1a 1 万 2万3 万
  • Android布局常用

    1 控件隐藏 在XML 文件里设置属性隐藏 android visibility 61 34 invisible 34 android visibility 61 34 visible 34 android visibility 61 34
  • 乘法

    乘法 请仔细把下面的看懂 xff0c 看完后 xff0c 也许你能口算出 1 xff5e 199 之间数的平方 xff0c 或许能口算出多个数的结果 1 乘法的本质 xff1a 乘法的本质就是求和 从上面两张图片中 xff0c 你可以知道
  • Android Activity之间跳转与传值

    一 Activity 跳转与传值 xff0c 主要是通过 Intent 类来连接多个 Activity xff0c 通过 Bundle 类来传递数据 最常见最一般的页面跳转代码 xff0c 很简单 xff0c 如下 xff1a Intent