Android笔记(五)利用Intent启动活动
Intent是意图的意思,分为显式 Intent 和隐式 Intent。
以下我们试图在FirstActivity中通过点击button来启动SecondActivity
1.显式Intent
在应用中建立两个类,FirstActivity和SecondActivity。分别为它们建立layout布局文件first_layout,second_layout,并在AndroidManifest.xml中注冊。
Intent的使用方法: Intent(Context packageContext, Class cls)。
这个构造函数接收两个參数。第一个參数 Context 要求提供一个启动活动的上下文。第二个參数 Class 则是指定想要启动的目标活动。 通过这个构造函数就能够构建出 Intent 的“意图”。
将FirstActivity中button1的响应事件改动为
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
光有意图还不够。Activity 类中提供了一个 startActivity()方法,这种方法是专门用于启动活动的,它接收一个 Intent參数,这里我们将构建好的 Intent传入 startActivity()方法就能够启动目标活动了。
2.隐式意图
隐式Intet并不明白指出我们想要启动哪一个活动。而是指定了一系列更为抽象的 action 和 category 等信息,然后交由系统去分析这个 Intent,
并帮我们找出合适的活动去启动。
AndroidManifest.xml中在SecondActivity里加入
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
然后改动 FirstActivity 中button的点击事件
Intent intent = new Intent(“com.example.activitytest.ACTION_START”);
startActivity(intent);
由于动作相匹配,而类别是默认的,所以也能启动SecondActivity
每一个 Intent 中仅仅能指定一个 action,但却能指定多个 category。眼下我们的 Intent 中仅仅有一个默认的 category。那么如今再来添加一个吧。
Intent intent = new Intent(“com.example.activitytest.ACTION_START”);
intent.addCategory(“com.example.activitytest.MY_CATEGORY”);
startActivity(intent);
那么,我们在AndroidManifest.xml中注冊的活动也要改动对应的类别才干响应这个Intent
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.example.activitytest.MY_CATEGORY"/>
</intent-filter>
再次又一次启动程序,就ok了。
3.隐式Intent的还有一个功能:显示网页
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(“http://www.baidu.com“));
startActivity(intent);
uri是统一资源标识符的缩写。先将百度的网址转化成统一资源标识符,然后在传入intent,ACTION_VIEW会依据传入的数据类型打开对应的活动,本例中打开的是网页,也能够打开拨号程序。地图定位等。
< intent-filter >标签中有一个< data >标签,用于指定当前活动响应什么类型的数据,< data >标签中主要能够配置以下内容
1. android:scheme
用于指定数据的协议部分。如 http部分 。
2. android:host
用于指定数据的主机名部分。如 www.baidu.com 部分。
3. android:port
用于指定数据的port部分。一般紧随在主机名之后。
4. android:path
用于指定主机名和port之后的部分,如一段网址中跟在域名之后的内容。
5. android:mimeType
用于指定能够处理的数据类型,同意使用通配符的方式进行指定。
仅仅有< data >标签中指定的内容和 Intent 中携带的 Data 全然一致时。当前活动才干够响应该 Intent。
只是一般在< data >标签中都不会指定过多的内容。如上面浏览器演示样例中。事实上仅仅须要指定 android:scheme 为 http,就能够响应全部的 http 协议的 Intent 了。
以下这个就是能够打开网页的活动
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
</intent-filter>
调用系统拨号界面
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
Intent 的 action 是 Intent.ACTION_DIAL,这又是一个 Android 系统的内置动作。然后在 data 部分指定了协议是 tel。号码是 10086。效果如图:
Android笔记(五)利用Intent启动活动的更多相关文章
- 【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent
1.0 在helloworld项目基础上创建活动SecondActivity: 2.0 其中main.xml: <?xml version="1.0" encoding=&q ...
- 【Android】12.2 利用Intent启动和关闭Activity
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 Android应用程序中一般都有多个Activity,在Activity中,通过调用StartActivity方法 ...
- Android(java)学习笔记131:Intent启动别的Activity
1.案例 (1)首先是main.xml和other.xml文件如下: main.xml文件: <?xml version="1.0" encoding="utf-8 ...
- Android(java)学习笔记73:Intent启动Activity
1. Intent启动Activity案例 (1)首先是main.xml和other.xml文件如下: main.xml文件: <?xml version="1.0" enc ...
- 【Android基础】利用Intent在Activity之间传递数据
前言: 上一篇文章给大家聊了Intent的用法,如何用Intent启动Activity和隐式Intent,这一篇文章给大家聊聊如何利用Intent在Activity之间进行沟通. 从一个Activ ...
- Android开发之通过Intent启动系统应用的协议
使用隐式Intent启动系统应用,除了http协议,还有geo(显示地理位置),tel(拨打电话),file(文件)等
- Android开发值利用Intent进行put传值,setclass启动activity,并用get进行取值
传值方法一 [java] Intent intent = new Intent(); Bundle bundle = new Bundle(); //该类用作携带数据 bundle.putString ...
- Android开发之通过Intent启动其他App的Service
在Android5.0以前可以通过隐式Intent方式启动其他App的Service,就跟Activity启动隐式Intent一样的. 但是在5.0以后,只能使用显示的Intent方式启动了. 启动其 ...
- nodejs爬虫笔记(五)---利用nightmare模拟点击下一页
目标 以腾讯滚动新闻为例,利用nightmare模拟点击下一页,爬取所有页面的信息.首先得感谢node社区godghdai的帮助,开始接触不太熟悉nightmare,感觉很高大上,自己写代码的时候问题 ...
随机推荐
- Android 开发笔记___复选框__checkbox
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...
- CentOS恢复root口令方法
CentOS6和CentOS7恢复root口令的方法有很大不同 CentOS6: 在引导菜单倒计时界面按任意键,进入grub引导菜单 按e键进入内核引导参数编辑界面 选中kernel项,按e键编辑引导 ...
- python的xlwt模块的常用方法
工作中需要导出数据为excel格式,使用了xlwt模块,在此记录一下用到的内容. 1. 创建一个表,设置一个sheet import xlwt workbook = xlwt.Workbook(enc ...
- 再学习之MyBatis
一.框架基本介绍 1.概念 支持普通SQL查询.存储过程和高级映射,简化和实现了Java 数据持久化层的的开源框架,主要流行的原因在于他的简单性和易使用性. 2.特点 持久层 .ORM(对象关系映射) ...
- Set的常用方法(java)
一.新增:重复新增的值会被覆盖 代码: Set<String> ss=new HashSet<String>(); ss.add("a");ss.add(& ...
- EAS(学生管理系统)初建
一.确定开发使用的技术 本次开发EAS示例网站,使用Servlet+JSP+MySQL技术,其中包括使用bootstrap工具完成简易前端页面设计.所有数据实体与数据关系皆用数 ...
- Git文件状态描述
检查当前文件状态 [root@typhoeus79 ice_test_m git_test]# git status # On branch master nothing to commit (wor ...
- javascript 的继承
我们的JavaScript比较特别了,主要通过原型链实现继承的. 下面介绍各种实现继承的方式:原型链继承,借用构造函数,组合继承,原型式继承,寄生式继承,寄生组合式继承. 二.实现继承方式 1.原型链 ...
- vim编辑器介绍及其常用命令
vim简单的介绍 Vim 编辑器是一个模式编辑器 . 这意味着在不同状态下编辑器有不同的行为模式 . 两个基本的模式是 Normal 模式和 Insert 模式 ,还有可视模式. 在 Normal 模 ...
- JQuery使用笔记
1.选择器 id选择器: $('#btnShow') class选择器: $('.banner') tag选择器: $('input') 2.常用方法 取 / 设value: $('#btnShow' ...