android intent 隐式意图和显示意图(activity跳转)
android中的意图有显示意图和隐式意图两种,
显示意图要求必须知道被激活组件的包和class
隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件
A 主activity B 接收跳转的activity
步骤
1:在主配置文件中声明B 至少要声明一个android:name属性
[html]
<activity
android:name=".DemoActivity"
android:label="@string/demoActivity"
>
<intent-filter>
<!--
隐士意图中指定intent的名字 自己定义 可匹配多项 -->
<action
android:name="com.itcast.intent.DemoActivity" />
<!--
隐式intent需要指定的activity的类型,可自己定义该值,需要在调用的时候相对应不写该项默认为
android.intent.category.DEFAULT,可匹配多项 -->
<category
android:name="android.intent.category.DEFAULT" />
<!--
指定传想该activity数值的类型 和主机,如果指定该项,就必须在跳转activity的时候传入还数据和主机名
-->
<data
android:host="cn.itcast.demo"
android:scheme="itcast"
/>
</intent-filter>
</activity>
2:在A的布局文件中一个textview和button,并添加点击事件
[html]
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个activity"
/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="open"
android:text="跳转"
/>
3:点击事件触发的集中intent意图
[java]
/**
* 意图,描述一个动作,激活一个组件,使用其他的activity需要现在主文件中配置activity的名字等属性
* intent
要去做一件事
*
* @param view
*/
public void open(View
view) {
/**
* 方法一
*/
Intent
intent1 = new Intent();
//
1.是当前的包名,2跳转activity的类名,一定要加上包名
intent1.setClassName("com.itcast.intent",
"com.itcast.intent.DemoActivity");
//
startActivity(intent1);
/**
* 方法二
*/
Intent intent2 = new Intent(this,
DemoActivity.class);
// startActivity(intent2);
/**
* 方法三
*/
Intent intent3 = new
Intent();
ComponentName component = new
ComponentName("com.itcast.intent",
"com.itcast.intent.DemoActivity");
intent3.setComponent(component);
//
startActivity(intent3);
/**
*
上面三种方法要求必须知道被激活组件的包和class,称为显示意图
*/
//
******************************************************************//
/**
* 隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件<br>
*
如果要激活另外程序的组件
*/
Intent intent = new
Intent();
intent.setAction("com.itcast.intent.DemoActivity");
//
不管在主配置文件中有沒有声明跳转activity的category,都要写该项,不然报错找到activity,不些有系統會以默認的類型
intent.addCategory("android.intent.category.DEFAULT");
//
如果在声明activity的时候指定了data属性,在跳转的时候就一定要设置他的data属性值,和配置的属性值相等,不然也会报找不到的错误
intent.setData(Uri.parse("itcast://cn.itcast.demo"));
//
startActivity(intent);
Intent imageIntent = new
Intent();
imageIntent.setAction(Intent.ACTION_PICK);
imageIntent.setType("image/*");// 设置数据类型
startActivity(imageIntent);
}
DemoActivity
不需要做任何事,只要继承activity,并重写他的oncreate方法就可以了,这个例子只是测试activity的跳转的几个方法
android intent 隐式意图和显示意图(activity跳转)的更多相关文章
- android 21 隐式意图启动系统预定义activity
Intent intent=new Intent(LoginActivity.this, MainActivity.class);//显示意图启动,显示从一个activity到另一个activity, ...
- 安卓Intent(隐式)
相对于显式Intent(明确指出了目标组件名称的Intent),隐式Intent,没有明确指出目标组件名称.显式Intent直接用组件的名称定义目标组件,这种方式很直接.但是由于开发人员往往并不清楚别 ...
- android intent隐式调用之一个应用程序启动另一个应用程序
理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似:另一种是隐式的Intent,即Inten ...
- 【C++自我精讲】基础系列五 隐式转换和显示转换
[C++自我精讲]基础系列五 隐式转换和显示转换 0 前言 1)C++的类型转换分为两种,一种为隐式转换,另一种为显式转换. 2)C++中应该尽量不要使用转换,尽量使用显式转换来代替隐式转换. 1 隐 ...
- C++模板之隐式实例化、显示实例化、隐式调用、显示调用和模板特化详解
模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程.对于函数模板而言,模板实例化之后,会生成一个真正的函数.而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始 ...
- 第一行Kotlin系列(二)Intent隐式显式跳转及向下传值
1.Intent显式跳转页面 val button5 = findViewById<Button>(R.id.mButton5) button5.setOnClickListener { ...
- Android 隐式意图和显示意图的使用场景
本文实现一个隐式意图的应用,激活短信应用 public void click4(View view) { Intent intent = new Intent(); intent.setAction( ...
- Android 设置隐式意图
AndroidManifest.xml对于被调用的activity: <activity android:name="com.wuyou.twoactivity.OtherActivi ...
- android 利用隐式Intent打开图片
实现功能 点击"查看图片"时能够跳出提示,选择系统图库打开还是自己编写的应用打开,并且对于下载好的图片也有效. 1.我将 qiaoba.jpg 放在 res/drawable ...
随机推荐
- Java多线程初学者指南(12):使用Synchronized块同步变量
我们可以通过synchronized块来同步特定的静态或非静态方法.要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传 ...
- BZOJ 1634: [Usaco2007 Jan]Protecting the Flowers 护花
Description Farmer John went to cut some wood and left N (2 <= N <= 100,000) cows eating the g ...
- iOS各种系统通知Name
当了一次搬运工,原地址:http://blog.csdn.net/db905517804/article/details/50569949 用法: - (void) viewWillAppear:(B ...
- UserMailbox 必须强制使用 Database---Database is mandatory on UserMailbox error
XX搞了接近一天,终于搞定. 不只是在查看用户邮箱里发现这样的情况,就连在PS里执行GET-MAILBOX之类,都有这个报错. 跟网上所有的解决方法都不一样. 重新了系统邮件都不行,重新了ADMINI ...
- POJ_2446_Chessboard
题目意思就是一个M*N的有洞棋盘棋盘上,用1*2的板子去覆盖没有洞的地方,要求板子不能重叠,最终能否将棋盘完整覆盖. 代码: #include<stdio.h> #include<s ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)
首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code 1 2 template < class _Ty, cl ...
- jQuery zTree v3.5 实例3 异步树
最终效果: 点击非叶子节点时,向后台发送请求,获取下级菜单 前台代码如下: <%@ page language="java" contentType="text/h ...
- 《IT运维之道》
本书共分为5篇,机遇篇.做事篇.处事篇.技能篇和高级篇,从不同的层面阐述了IT运维人员 应掌握的方法及相关知识与技能.本书作者深入浅出.化繁为简,将信息化服务中晦涩的IT标准规范.流程体系用浅显易懂的 ...
- HNOI2008 and ZJOI2006 排名系统
1056: [HAOI2008]排名系统 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1311 Solved: 337[Submit][Statu ...