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 ...
随机推荐
- Solution -「营业」「CF 527C」Glass Carving
Description Link. 有一个块 \(n\times m\) 的矩形,有 \(q\) 次操作,每次把矩形横 / 竖着切一刀,问切完后的最大矩形面积. Solution 一个不同于大多数人. ...
- 解决CentOS 7出现docker-compose: command not found
解决CentOS 7出现docker-compose: command not found 1. 安装docker-compose 既然使用了docker-compose那自然得安装了 在GitHub ...
- [自然语言处理] 基于pycorrector实现文本纠错
文本纠错(Text Error Correction)技术旨在自动修正输入文本中的拼写.语法.标点符号等错误,以提高文本的准确性.通顺性和规范性.该技术可以通过自然语言处理技术实现,基于上下文和语言规 ...
- ERP 财务管理的应付帐款流程
导读:应付帐款流程与应收帐款流程是财务管理的开端,也是财务工作的主要流程.若能够这两大流程控制好了,ERP系统的财务模块也就成功了一大半了.我先讲一下财务管理的应付帐款流程. 企业的应付帐款有很多种类 ...
- C++在HotSpot VM中一种巧妙的内存管理方式
在HotSpot VM中定义了一个Relocation类及相关的子类,可以通过这些类操作不同的重定位数据,如在CodeCache中读写这些数据.这些类需要的内存很小,但是不同的类需要的内存大小又不一样 ...
- js数据结构--树
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- Vue之style的用法
Vue中style的用法总结如下: v-bind:style 简写:style 1.基本用法 <!DOCTYPE html> <html lang="en"&g ...
- 虹科案例 | 石油天然气行业CFD高性能计算解决方案
公司简介 DNV GL 是全球领先的能源.石油和海事行业风险管理及资产绩效提升的软件供应商,主要为客户提供全面的风险管理和各类评估认证服务,认证涉及信息通信技术.汽车及航空天.食品与饮料.医疗等方面. ...
- docker 仓库-Harbor
docker 仓库之分布式 Harbor: Harbor 是一个用于存储和分发docker镜像的企业级Registry服务器,由于Vmware 开源,其通过添加一些企业必须的功能特性,例如安全.标识和 ...
- Git文件权限与filemode配置方法
一.问题 Clion是一个跨平台的IDE,今天将工程运行在Ubuntu下,在Git提交时发现有很多文件显示被更改,但是文件内容却是相同的. 二.Git 规则 Git对文件访问权限的管理与配置选项cor ...