首页 > 其他分享 >Android 移动应用开发基础案例教程——Activity的跳转

Android 移动应用开发基础案例教程——Activity的跳转

时间:2024-09-25 19:47:52浏览次数:10  
标签:SecondActivity 跳转 MainActivity 点击 Intent Activity Android data

一、Activity的创建

1、创建一个新项目

点击Flie--New--New Project

点击Empty Views Activity

点击Next

根据需要可修改项目名称,这里我重命名为CycActivity,然后点击Finish即可完成创建新项目。

2、SecondActivity的创建

点击java--->com.example.cycactivity,右键new--->Activity--->Empty Views Activity

命名为SecondActivity。

创建好如下图

二、Activity的跳转

1、MainActivity---->SecondActivity,事件驱动,点击事件

首先,在activity_main.xml中添加Button,直接拖动即可。

其次,在activity_second.xml中添加TextView,直接拖动即可。

然后,在MainActivity中修改代码如下(注意id.后缀要和activity_main.xml中button的id一样)

最后实现Activity的跳转(效果如下,点击跳转到Second页面即可跳转)

2、MainActivity---->SecondActivity,传参

首先,在MainActivity中定义你想要传递的数据,并创建一个Intent来启动SecondActivity。通过Intent的putExtra()方法,你可以将数据附加到Intent上。在这我定义传递数据为“Hello from MainActivity!”(代码如下)

其次,在SecondActivity中在合适的位置(通常是onCreate()onStart()方法中)获取启动它的Intent,并使用getIntent()方法。然后,你可以通过Intent的getStringExtra()(或其他相应的getExtra()方法,取决于你传递的数据类型)方法来检索附加在Intent上的数据。(代码如下)

完成以上步骤就可以完成MainActivity---->SecondActivity跳转传参(运行后如下图,接收到MainActivity传来的参数)

3、MainActivity---->SecondActivity---->MainActivity,传参

首先,在MainActivity中修改代码使其执行以下主要操作:

  1. 初始化UI组件:
    • 使用setContentView(R.layout.activity_main);设置MainActivity的布局文件。
    • 通过findViewById(R.id.textView);找到布局中ID为textViewTextView组件,并存储在成员变量textView中。
    • 通过findViewById(R.id.startButton);找到布局中ID为startButtonButton组件,并用于设置点击监听器。
  2. 设置按钮的点击监听器:
    • startButton设置一个点击监听器,当按钮被点击时执行以下操作:
      • 创建一个新的Intent对象intent,指定要启动的ActivitySecondActivity
      • 使用intent.putExtra("data_from_main", "Hello from MainActivity!");intent中添加数据,键为"data_from_main",值为"Hello from MainActivity!"
      • 调用startActivityForResult(intent, REQUEST_CODE);启动SecondActivity,并请求结果。这里的REQUEST_CODE是一个整型常量,用于在onActivityResult回调中识别是哪个请求返回了结果。
  3. 接收从MainActivitySecond`Activity的返回on的数据ActivityResult:方法 会被 调用 -。 当 -Second 在Activity``on通过ActivityResultsetResult()方法设置结果并调用finish()结束时,方法中,首先检查requestCode是否匹配启动SecondActivity时使用的REQUEST_CODE,以及resultCode是否为RESULT_OK`(表示操作成功)。
    • 如果条件满足,并且返回的Intentdata参数)不为null,则通过data.getStringExtra("returned_data");获取从SecondActivity返回的数据。
    • 最后,使用textView.setText(returnedData);将获取到的数据显示在TextView上。

这样,MainActivity就能够启动SecondActivity,并向其传递数据。同时,它还能够接收SecondActivity处理完数据后返回的结果,并将结果显示在UI上。

其次,在SecondActivity中修改代码使其执行以下主要操作:

  1. 初始化UI组件:
    • 使用setContentView(R.layout.activity_second);设置SecondActivity的布局文件。
    • 通过findViewById(R.id.textView2);找到布局中ID为textView2TextView组件,并存储在局部变量textView中。
    • 通过findViewById(R.id.returnButton);找到布局中ID为returnButtonButton组件,并存储在局部变量returnButton中。
  2. 从Intent接收数据:
    • 使用getIntent()获取启动此ActivityIntent
    • 通过intent.getStringExtra("data_from_main");Intent中提取键为"data_from_main"的字符串数据,并存储在dataFromMain变量中。
    • 如果dataFromMain不为null,则使用textView.setText(dataFromMain);将提取的数据设置为TextView的文本。
  3. 设置返回按钮的点击监听器:
    • returnButton设置一个点击监听器,当按钮被点击时执行以下操作:
      • 准备一个字符串dataToReturn,内容为"Hello from SecondActivity!",作为要返回给MainActivity的数据。
      • 创建一个新的Intent对象returnIntent
      • 使用returnIntent.putExtra("returned_data", dataToReturn);dataToReturn添加到returnIntent中,键为"returned_data"
      • 使用setResult(RESULT_OK, returnIntent);设置结果码(RESULT_OK表示操作成功)和包含返回数据的Intent
      • 调用finish();结束SecondActivity,并将结果返回给启动它的Activity(在这个场景中是MainActivity)。

这样,SecondActivity就能够从启动它的Intent中接收数据,并在UI中显示这些数据。同时,它还提供了一个按钮让用户能够触发返回到MainActivity的操作,并携带一些数据回去。

最后,运行效果如下:

点击跳转到Second页面后如下图:

最后点击返回Main页面如下图:

标签:SecondActivity,跳转,MainActivity,点击,Intent,Activity,Android,data
From: https://blog.csdn.net/m0_74174723/article/details/142371482

相关文章

  • Flutter 自定义国家选择器:基于 A ~ Z字母索引的列表跳转与侧边栏导航实现
    在许多移动应用中,我们经常需要通过字母索引快速跳转到目标位置,比如通讯录、国家选择等功能。这篇博客将带大家实现一个仿照通讯录的Flutter国家选择器。通过一个字母索引的侧边栏,用户可以快速跳转到目标字母分组。效果:1.项目需求与设计思路我们需要实现一个包含多个国......
  • android 10 禁止通过adb命令的方式删除特定APK
    —a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java+++b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java@@-1636,84+1636,88@@classPackageManagerShellCommandextends......
  • Android Auto认证是什么?
    AndroidAuto认证是谷歌官方提供的一种认证机制,旨在确保车辆信息娱乐系统与AndroidAuto应用程序接口(API)的兼容性,从而实现与Android设备的无缝连接和通信,为用户提供稳定、安全、高性能的使用体验。AndroidAuto认证目的是确保这些应用程序和系统能够与AndroidAuto平台无缝集成,提供......
  • Android 14.0 recovery竖屏界面旋转为横屏
    1.概述在14.0系统rom项目定制化开发中,由于平板固定横屏显示,而如果recovery界面竖屏显示就觉得怪怪的,所以需要recovery页面横屏显示的功能,所以今天就来解决这个问题2.实现功能相关分析Android的Recovery中,利用bootable\recovery下的minui库作为基础,采用的是直接存取framebu......
  • Android 设备命令行开代理
    #!/bin/bashecho"\n----------------Support------------------"echo"设置默认代理proxyset"echo"设置自定义代理proxyset****:9090"echo"删除代理proxyclean"echo"------------------------------------------......
  • Android USB 整条通知链分析
    以Android13为例:在Android13中,USB插入拔出事件的通知链从硬件层到应用层,依次经过硬件、内核、HAL、Framework、以及应用广播等多个模块,整个流程涉及的具体文件和逻辑如下:硬件层(USBPHY/控制器)文件:/drivers/usb/phy/phy-generic.c(USBPHY驱动)/drivers/usb/dwc3/dwc3-cor......
  • Android Studio制作简单登录界面
    实现目标应用线性布局设计登录界面,要求点击输入学号时弹出数字键盘界面,点击输入密码时弹出字母键盘,出现的文字、数字、尺寸等全部在values文件夹下相应.xml文件中设置好,使用时直接引用。当用户名或密码为空,显示一个提示信息“用户名与密码不能为空!”,当用户名和密码匹配,显示“登录......
  • Android启动过程深入解析
    Android启动过程深入解析A当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?A什么是Linux内核?A桌面系统linux内核与Android系统linux内核有什么区别?A什么是引导装载程序?A什么是Zygote?A什么是X86以及ARMlinux?A什么是init.rc?A什么是系统服务?当我们想到......
  • Android Studio实例:绿豆通讯录
    步骤一:了解项目结构步骤二:首先是继承SQLiteOpenHelper的数据库自定义类创建Java文件MyHelper.javaimportandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;publicclassMyHelperextends......
  • Android线程使用总结
    Android线程使用总结1.ThreadingPerformance在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程并发编程......