[Android Studio] 第5节 Intent页面跳转

2023-11-19

目录

目录

一、Intent是什么?

二、使用步骤

1.调转demo

2.详解

3.页面数据传递


一、Intent是什么?

Intent是Android中用于在不同组件(如活动、服务、广播接收器)之间传递数据和执行操作的对象。它可以用于启动活动、启动服务、发送广播以及执行其他各种操作。下面是对Intent的具体解析:

  1. Intent的构造: 可以通过不同的构造方法创建Intent对象,以满足不同的使用需求。例如:

    • Intent intent = new Intent(context, TargetActivity.class); 创建一个明确指定目标活动的Intent对象,context是当前活动的上下文,TargetActivity.class是目标活动的类。
    • Intent intent = new Intent(action); 创建一个指定操作行为的Intent对象,例如发送广播时可以使用该构造方法。
  2. 设置Intent的属性: Intent对象具有许多可设置的属性,常用的包括:

    • 目标组件:指定Intent要启动或传递数据给哪个组件。
    • 数据传递:通过putExtra()方法添加附加数据到Intent中,并使用键值对的方式存储。
    • 动作和类别:通过setAction()addCategory()方法设置Intent的动作和类别。
    • Flags:通过setFlags()方法设置Intent的标志位,如FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP等。
  3. 启动组件: 最常见的用法是通过调用startActivity()方法来启动活动。除此之外,还可以使用startService()启动服务,sendBroadcast()发送广播等。

  4. 数据传递和接收: 可以使用Intent在不同组件之间传递数据。发出Intent时,可以使用putExtra()方法将数据添加到Intent中;接收Intent时,可以使用对应的方法(如getXXXExtra())获取传递的数据。

需要根据具体情况来使用Intent,并根据需求设置不同的属性。通过Intent,可以实现不同组件之间的通信和交互。

二、使用步骤

1.调转demo

Intent intent = new Intent(EnglishActivity.this,DictionaryTableActivity.class);
startActivity(intent);

2.详解

这段代码是在一个名为EnglishActivity的活动中启动了另一个名为DictionaryTableActivity的活动。下面是对这段代码的解析:

  1. 创建Intent对象: Intent intent = new Intent(EnglishActivity.this, DictionaryTableActivity.class); 这行代码创建了一个新的Intent对象,并指定了两个参数:

    • EnglishActivity.this:这是一个上下文参数,指定了当前活动的上下文,用于区分不同活动。
    • DictionaryTableActivity.class:这是指向目标活动的Class对象,指定了要启动的活动。
  2. 启动活动: startActivity(intent); 这行代码调用startActivity()方法,传入创建的Intent对象作为参数,启动了目标活动。

通过以上代码,当在EnglishActivity中执行时,它会创建一个意图(Intent),将当前活动作为上下文,并将目标活动定义为DictionaryTableActivity,然后启动该活动。这将导致跳转到DictionaryTableActivity并显示该活动的界面。

3.页面数据传递

Intent intent = new Intent();
intent.setClass(EnglishActivity.this,DictionaryTableActivity.class);
intent.putExtra("extra_data","Ni hao");
startActivity(intent);

这段代码创建了一个新的Intent对象,设置了该Intent要启动的目标活动为DictionaryTableActivity。然后,使用putExtra()方法将一个名为"extra_data"的附加数据添加到Intent中,并将值设为"Ni hao"。

最后,通过调用startActivity()方法,将该Intent传递给当前活动(EnglishActivity)的上下文,以启动目标活动DictionaryTableActivity

public class DictionaryTableActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dictionary_table);
        Intent intent = getIntent();
        String data = intent.getStringExtra("extra_data");
        System.out.println(data);
    }
}

DictionaryTableActivity中使用getIntent()方法获取传递过来的Intent,并使用getStringExtra("extra_data")方法获取"extra_data"键对应的值,即"Ni hao"。

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

[Android Studio] 第5节 Intent页面跳转 的相关文章

随机推荐

  • 学编程需要的电脑配置

    Java语言 普通PC机可以参考下方的这个配置哦 操作系统 Win10 或 Mac 优先Win10 内存 推荐16G及以上 8G也OK 肯定是越大越好 CPU Intel i5及以上 AMD谨慎考虑 硬盘 512G及以上 含固态硬盘优先 品
  • Exception has occurred: TypeError func must be a callable or a textual reference to one

    这是python定时器apschedurler的scheduler add job iotmain cron hour 7 minute 00 语句里面 调用的方法iotmain 不能带 改写为 scheduler add job iotm
  • rancher使用说明

    一 登录rancher rancher 内网地址 https 10 1 119 12 9443 login 用户名 admin 密码 admin 进入默认项目的工作负载页面 二 部署服务 部署服务 进入按钮 部署服务 部署页面 2 1 各部
  • mysql域名配置_bind+mysql域名解析的简单配置

    虽然不是干运维的 但在IT江湖打酱油也难免受到高人的影响 所以在很早就听说bind可以和数据结合使用 一直都没有时间去研究 今天恰好一个同事问到bind安装的问题 就顺便研究了一下 下面将我的操作过程共享个各位 期间查找了不少网络上的资料
  • 为分布式做准备吧——分布式服务架构设计概述

    文章目录 分布式服务框架设计架构原理 通信框架 长连接还是短链接 BIO还是NIO 序列化与反序列化 协议栈 服务路由 基于服务注册中心的订阅发布 集群容错 服务降级 分布式消息跟踪 分布式服务框架设计架构原理 通常 分布式服务框架的架构可
  • 集成unittest与html测试报告

    常用断言 self assertTrue self assertEqual 集成HtmlTestRunner生成测试报告 testcase unittest TestSuite testcase addTests unittest Test
  • C++ STL概述

    STL就是封装好的一些数据结构以及一些算法 C STL 标准模板库 是一套功能强大的 C 模板类 提供了通用的模板类和函数 这些模板类和函数可以实现多种流行和常用的算法和数据结构 如向量 链表 队列 栈 Standard Template
  • shardingsphere-jdbc-core-spring-boot-star启动报错:ShardingSphereYamlConstructor$1.setCodePointLimit(I)V

    ShardingJdbc报ShardingSphereYamlConstructor 1 setCodePointLimit I 错误 是ShardingSphereYamlConstructor类没没有setCodePointLimit
  • Mac版Intelli IDEA 2018.2.2永久破解(到2100年1月)——2018.09.04亲测

    感谢https blog csdn net HALEN001 article details 81137092 1 下载IntelliJ IDEA 2018 2 2版本和破解补丁JetbrainsCrack 3 1 release enc
  • 年报前瞻:文化产业高质量发展确定性,关注腾讯音乐三大关键能力

    港股进入年报季 今年的披露期拥有比往年更多的看点 一方面 经济复苏态势明显 线上线下消费均有回暖 市场已经对去年的整体表现有更多预期 正关注企业对后续发展的思考 另一方面 两会结束 不少产业领域获得了新提法 新政策 纵观港股市场 文化产业目
  • GET和POST请求中,url中的参数和form表单中的参数怎么区分

    在和web前端开发过程中 经常会遇到使用form表单提交POST请求和GET请求 一般GET请求格式如下 http xxx path key1 value1 key2 value2 而POST请求的参数一般在请求体中 但是有时会发现 web
  • 工业 4.0 如何引领另一场工业革命

    提到工业革命 你首先想到的是什么 也许你会联想到一个戴着高帽 留着卷曲胡子的垄断商 抑或是蒸汽机 吊桥和维多利亚时代的工厂 如果我们告诉你 工业革命远未结束 而是未来众多工业革命中的第一次呢 事实上 我们正处于第四次工业革命的阵痛期 即所谓
  • altium Designer中Net Label的用法

    1 Net Label在AD中的位置 2 效果 给原理图中的不封闭线路做标记 如下图中用3个Net Label标记了3个不封闭的线路端 pin2 green light 和green light Net Label需要一个不封闭的线路组合
  • 编写谷歌插件v3遇到“ReferenceError: window is not defined”错误

    一 背景 得空学一下插件的编写Chrome Extensions 在GitHub找一些例子来看看 不过大多数都还是V2的 有些写法已经过时了 用不了 必须得对着文档来进行修改才行 练习的例子上 想写一个右键菜单 显示本机ip地址的跳转入口
  • plsql更改用户登录密码

    ORACLE数据库系统是美国ORACLE公司 甲骨文 提供的以分布式数据库为核心的一组软件产品 是目前最流行的客户 服务器 CLIENT SERVER 或B S体系结构的数据库之一 比如SilverStream就是基于数据库的一种中间件 O
  • seaborn画图——热力图及其参数详解,查找cmap的取值

    加载包 import pandas as pd import matplotlib pyplot as plt import seaborn as sns 使用pandas创建数据 s pd DataFrame v1 11 22 3 v2
  • clickhouse实战--常见异常汇总

    Code 117 e displayText DB Exception Unexpected NULL value of not Nullable type String version 20 8 3 18 从上面报错信息来看 是因为nul
  • Flutter - ScrollController 滚动监听及控制

    1 ScrollController jumpTo double offset animateTo double offset 这两个方法用于跳转到指定的位置 它们不同之处在于 后者在跳转时会执行一个动画 而前者不会 实例 点击按钮返回顶部
  • 解决在WebStorm中使用Vue的v-bind,v-on报错

    1 报错详情 Namespace v bind is not bound Namespace v on is not bound 等 问题说明 出现这个错误不是代码本身的问题 而是 WebStorm 这个编辑器的问题 因为 WebStorm
  • [Android Studio] 第5节 Intent页面跳转

    目录 目录 一 Intent是什么 二 使用步骤 1 调转demo 2 详解 3 页面数据传递 一 Intent是什么 Intent是Android中用于在不同组件 如活动 服务 广播接收器 之间传递数据和执行操作的对象 它可以用于启动活动