Android学习--Intent
Intent :
Intent 是一个动作的完整描述,一种运行时的绑定机制,Intent中包含对Intent有兴趣的组件信息,如对动作的产生组件、接受组件和传递的数据信息。Android根据此Intent描述,在不同的组件之间传递消息,执行相关的动作,完成组件的调用。
Intent的基本构成结构:Intent对象抽象地描述了要执行的动作,主要内容包括了:组件名称(componentName)、动作(Action)、数据(data)、类别(category)、附加信息(Extra)和标志位(Flag)。
- 组件名称(ComponentName对象),ComponentName包含两个String成员,分别代表目标组件类名和目标组件所在应用程序包名,包名必须和AndroidManifest.xml文件标记中的对应信息一致。ComponentName通过setComponentName()、setClass()或者setClassName()设置,通过getComponent()获取。对于Intent,组件名称不是必需的。如果一个Intent对象添加了组件名,则称为“显示Intent”,若没有添加组件名,则称为“隐式Intent”。通常,Android会根据Intent中包含的其他信息(如action、data、category)进行查找,最终找到一个与之匹配的目标组件。但是如果componentName这个属性有指定,将直接使用这个指定的组件,而不执行上述的查找过程。
- 动作(action)action是要执行的动作。它描述了Intent会触发的动作。Android系统中已经预定义了一些acton常量,可以参考SDK文档。除了系统定义的action,可以自定义action,在自定义action时,一般要加上包名作为前缀(为了防止重复定义)。一个对象的动作通过setAction()方法设置,通过getAction()方法读取。
- 数据(data)即执行动作需要操作的数据。data描述了Intent执行动作所能操作数据的MIME类型和URL,不同的Action用不同的操作数据。例如Activity字段是ACTION_EDIT,data字段将显示包含于编辑的文档URI;如果Activity是ACTION_CALL,data是一个tel://URL和将要拨打的电话号码;在许多情况下,数据类型能够从URI中推测出来,当然,也能显式的设置,setData()方法制定数据的URI,setType()指定MIME类型,setDataAndType()指定数据的URI和MIME类型。通过getData()读取URI,getType()读取类型。匹配一个Intent到一个能够处理data的组件,知道data的类型(它的MIME类型)和它的URI很重要。
- 类别(category)被执行动作的附加信息。例如:LAUNCHER_CATEGOTY表示Intent的接受者应该是launcher中作为顶级应用出现的;而ALTERNATIVE_CATEGORY表示当前Intent是一系列的可选动作中的一个,这些动作可以再同一块数据上执行。通过addCategory()方法添加一个种类到Intent对象中;通过removeCategory()方法删除一个之前添加过的种类;通过getCategory()方法获取Intent对象中的所有种类。
- 附加信息(extra),extra是一组键值对,包含了需要传递给目标组件并有其处理的一些附加信息。Intnet有一系列putXXX()方法用于插入各种附加数据,有一系列getXXX()方法取出各种附加数据。
利用Intent实现多个Activity之间切换
在MainActivity.java中
Intent intent = new Intent(MainActivity.this,OneActivity.class);
intent.putExtra("msg", "Hello No.1");
startActivity(intent); //或者
Intent intent = new Intent();
intent.setClass(MainActivity.this,OneActivity.class);
intent.putExtra("msg", "Hello No.1");
startActivity(intent);
在OneActivity.java中
1 public class OneActivity extends Activity {
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 // TODO Auto-generated method stub
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.layout_one);
7 Intent intent = getIntent();
8 String msg = intent.getStringExtra("msg");
9 Toast.makeText(OneActivity.this, msg,Toast.LENGTH_SHORT).show()
10 }
通过定义一个Intent 将两个界面绑在一起。启动一个新界面的时候,只要调用startActivity(Intent)就可以了,并且通过putStringExtra()方法传送信息。
Android学习--Intent的更多相关文章
- Android学习之 Intent详解
一. Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯.比如说调用startActivity()来 ...
- android学习日记05--Activity间的跳转Intent实现
Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...
- Android学习笔记-Intent(一)
Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an opera ...
- android之intent显式,显式学习
intent,意图 当从一个Activity到另一个Activity时调用,这里重点学习显式,隐式的使用 使用语句上的区别: 隐式意图: 显式意图: setAction ...
- android学习四---Activity和Intent
1.android项目资源深入了解 在深入学习android之前,先好好玩玩手机上的应用,大部分程序都有一个图标,点开图标,程序启动,一定时间后,程序会跳转到第一个界面,比如手机QQ,点开图标,会跳出 ...
- 【转】Pro Android学习笔记(十二):了解Intent(下)
解析Intent,寻找匹配Activity 如果给出component名字(包名.类名)是explicit intent,否则是implicit intent.对于explicit intent,关键 ...
- 【转】Pro Android学习笔记(十):了解Intent(上)
目录(?)[-] Intent基本含义 系统的Intent Android引入了Intent的概念来唤起components,component包括:1.Activity(UI元件) 2.Servic ...
- Android学习总结(十)———— Intent的使用
一.Intent的基本概念 我们已经学习完了Android的四大组件了,在四大组件中我们用得最多的是Intent-Filter.Intent含义就是你想利用它调用哪个组件实现相关的功能,比如调用相机组 ...
- (转载)Android学习之Intent使用
ndroid学习之Intent使用 1.使用显示Intent Intent intent = new Intent(FirstActivity.this,SecondActivity.class) ...
- Android 学习Activity(1)activity和intent
工具是:JDK环境配置+SDK+ADT工具 一.Activity 主要作用: 1.用户与应用程序的接口 2.控件的容器 二.创建Activity要点:(在src中的目录下包里) 1.一个Activi ...
随机推荐
- Pisces.IM.Mood 前言
关于 Pisces.IM.Mood Mood Pisces.IM.Mood 一款基于TCP协议的即时通讯开源系统 多个客户端目前支持以下功能: 支持文字,图片,文件,emoji表情的发送 文件限制为5 ...
- 前端三件套系例之JS——JS的BOM操作、JS的DOM操作
文章目录 1 JS的BOM操作 1.介绍 2.window对象 2-1 代码 3.window的子对象 3-1 navigator对象(了解即可) 3-2 screen对象(了解即可) 3-3 his ...
- Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类、工具类与实现类
Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类.工具类与实现类 ELM_V1_食品的实体类 package elm_V1; /** * [食品实体类] * * @a ...
- interface 接口相关【GO 基础】
〇.接口简介 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节.也就是说,接口可以将一种或多种特征归纳到一起,其他不同的对象通过实现此接口,来表示可以 ...
- 【XXE实战】——浅看两道CTF题
[XXE实战]--浅看两道CTF题 上一条帖子[XXE漏洞]原理及实践演示对XXE的一些原理进行了浅析,于是写了两道CTF题巩固一下,顺便也记录一下第一次写出来CTF.两道题都是在BUU上找的:[NC ...
- 组合的输出 题解(lgP1157)
一看就是 dfs 然而窝并不会做 调了一个多小时才调出来.漏洞连篇.(第一次写的基本没有对的地方QAQ 题解见注释. #include<bits/stdc++.h> using names ...
- 使用 redis 实现分布式接口限流注解 RedisLimit
前言 很多时候,由于种种不可描述的原因,我们需要针对单个接口实现接口限流,防止访问次数过于频繁.这里就用 redis+aop 实现一个限流接口注解 @RedisLimit 代码 点击查看RedisLi ...
- 聊聊 GPU 产品选型那些事
随着人工智能的飞速崛起,随之而来的是算力需求的指数级增加,CPU 已经不足以满足深度学习.大模型计算等场景的海量数据处理需求.GPU 作为一种强大的计算工具,无论是高性能计算.图形渲染还是机器学习领域 ...
- 从DPlayer说起,有哪些开源的H5播放器
引言 H5指的是HTML5,也就是介绍网页播放器(只是列出而已).首先我不是什么大佬,并没有完全体验过以下我会介绍的全部播放器:其次,因为我水平比较低,主要介绍拥有中文文档的播放器,不了解开发的朋 ...
- 贪心算法:7-6 Swan学院社团招新
Swan学院社团招新,招新宣讲会分散在不同时间段,大一新生小花花想知道自己最多能完整的参加多少个招新宣讲会(参加一个招新宣讲会的时候不能中断或离开). [问题说明]这个问题是对几个相互竞争的招新宣讲会 ...