当前位置: 首页 > news >正文

第6天:Intent和页面导航

内容概述

本章节学习内容代码见链接: Intent和页面导航

1. Intent的作用
  • 显式Intent(Explicit Intent)

    • 显式Intent用于在应用内部启动特定的Activity。使用这种Intent时,开发者需要明确指定目标Activity的类名。例如,当用户在主界面点击一个按钮时,显式Intent可以用来启动一个新的界面(如SecondActivity)。显式Intent的代码示例:
      val intent = Intent(this, SecondActivity::class.java)
      startActivity(intent)
      
  • 隐式Intent(Implicit Intent)

    • 隐式Intent用于启动系统组件或其他应用的组件。开发者只需指定要执行的动作和数据类型,而不需要具体指定目标组件。例如,开发者可以使用隐式Intent来打开一个网页或拨打电话。这通常涉及到ACTION_VIEWACTION_DIAL等动作。隐式Intent的代码示例:
      val intent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"))
      startActivity(intent)
      
2. Activity之间的导航
  • 在Android应用中,Activity是用户界面的基本构建块。通过Intent,开发者可以在不同的Activity之间进行导航。例如,当用户完成某个任务后,可以使用Intent跳转到下一个界面。
  • 使用startActivity()方法启动新Activity。这不仅可以提供用户交互的流畅体验,还可以根据应用的不同状态(如登录状态)决定用户的导航路径。
3. 传递数据
  • 在启动新Activity时,开发者可以通过Intent传递数据。使用putExtra()方法将数据添加到Intent中,接收Activity则通过getStringExtra()等方法获取这些数据。这使得不同Activity之间能够共享信息,增强了用户体验。
  • 例如,当用户在输入框中输入消息后,可以将该消息通过Intent传递给下一个Activity,以便在新的界面上显示。

实践实例

我们将创建两个Activity:MainActivitySecondActivity。在MainActivity中点击按钮将启动SecondActivity并传递输入的数据。

实例创建过程

第一步:创建新项目
  1. 打开Android Studio。
  2. 选择“新建项目”。
  3. 选择“Empty Activity”模板,点击“下一步”。
  4. 配置项目:
    • 名称IntentDemo
    • 包名com.example.intentdemo
    • 保存位置:选择合适的文件夹
    • 语言:Kotlin
    • 点击“完成”。
第二步:设置MainActivity
  1. 打开MainActivity.kt文件。
  2. 设置UI和按钮点击事件:
package com.example.intentdemoimport android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import androidx.appcompat.app.AppCompatActivityclass MainActivity : AppCompatActivity() {private lateinit var editText: EditTextprivate lateinit var button: Buttonoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// 初始化EditText和ButtoneditText = findViewById(R.id.et_message)button = findViewById(R.id.btn_send)// 设置按钮点击事件button.setOnClickListener {val message = editText.text.toString()val intent = Intent(this, SecondActivity::class.java)intent.putExtra("EXTRA_MESSAGE", message) // 传递数据startActivity(intent) // 启动SecondActivity}}
}
第三步:创建SecondActivity
  1. 在项目中右键点击com.example.intentdemo包,选择“新建” > “Kotlin类/文件”。
  2. 输入类名SecondActivity,点击“确定”。
  3. 设置SecondActivity的内容:
package com.example.intentdemoimport android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivityclass SecondActivity : AppCompatActivity() {private lateinit var textView: TextViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_second)// 初始化TextViewtextView = findViewById(R.id.tv_received_message)// 获取Intent传递的数据val message = intent.getStringExtra("EXTRA_MESSAGE")textView.text = message ?: "No message received" // 显示消息}
}
第四步:设置布局文件
  1. activity_main.xml布局文件

    • 找到res/layout/activity_main.xml,将其内容替换为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"><EditTextandroid:id="@+id/et_message"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="输入消息" /><Buttonandroid:id="@+id/btn_send"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="发送消息" />
</LinearLayout>
  1. activity_second.xml布局文件

    • res/layout目录中,右键点击,选择“新建” > “布局资源文件”,命名为activity_second.xml,将其内容替换为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"><TextViewandroid:id="@+id/tv_received_message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18sp" />
</LinearLayout>
第五步:更新Manifest文件
  1. 打开AndroidManifest.xml文件。
  2. <application>标签内添加对SecondActivity的注册:
<activity android:name=".SecondActivity"></activity>
第六步:运行应用
  1. 点击“运行”按钮(绿色三角形图标)。
  2. 选择一个模拟器或连接的真实设备。
  3. MainActivity中输入消息并点击“发送消息”按钮。
  4. SecondActivity将启动并显示传递的消息。

小结

今天我们详细学习了Intent的使用,包括显式和隐式Intent的区别、Activity之间的导航,以及如何通过Intent传递数据。通过创建两个简单的Activity,我们实现了消息发送功能。这为后续的Android开发打下了基础,接下来可以探索隐式Intent或更多复杂的导航逻辑。


http://www.mrgr.cn/news/54469.html

相关文章:

  • 学习eNSP对提升就业竞争力有多大帮助?
  • YoloV10——专栏目录
  • msvcp140.dll丢失的解决方法吃鸡
  • CSS Grid实战-构建灵活高效的网格系统
  • 精准布局:探索CSS中的盒子固定定位的魅力
  • CTF(五)
  • 管家婆财贸ERP BB007.销售订单明细批量采购
  • 大数据治理--技术平台与工具
  • 深入探索 APKTool:Android 应用的反编译与重打包工具
  • 2024软考网络工程师笔记 - 第12章.网络规划设计
  • 【软件运行类文档】项目试运行方案,试运行计划书(word原件)
  • Windows环境下安装jdk8,含配置环境变量全过程
  • 基于MATLAB车牌识别系统设计
  • mysql连接池简单原理介绍+高并发场景下的设计
  • 发动机拆解可视化:精细化呈现机械内部结构
  • 安装 Git
  • 二层交换机的工作原理与局域网设备通信详解
  • 瑞云快图云渲染怎么样?渲染一张图贵吗?
  • 图的最小生成树算法--普里姆(Prim)算法和克鲁斯克尔(Kruskal)算法
  • 软考(网工)——局域网和城域网
  • 软件分享 丨eSearch 截图软件
  • AndroidStudio实验报告——实验一、二
  • 【Java】泛型
  • Linux 累加计算递归算法汇编实现
  • 【Linux】Linux进程地址空间
  • java集合进阶篇-《泛型》