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跳转)的更多相关文章

  1. android 21 隐式意图启动系统预定义activity

    Intent intent=new Intent(LoginActivity.this, MainActivity.class);//显示意图启动,显示从一个activity到另一个activity, ...

  2. 安卓Intent(隐式)

    相对于显式Intent(明确指出了目标组件名称的Intent),隐式Intent,没有明确指出目标组件名称.显式Intent直接用组件的名称定义目标组件,这种方式很直接.但是由于开发人员往往并不清楚别 ...

  3. android intent隐式调用之一个应用程序启动另一个应用程序

    理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似:另一种是隐式的Intent,即Inten ...

  4. 【C++自我精讲】基础系列五 隐式转换和显示转换

    [C++自我精讲]基础系列五 隐式转换和显示转换 0 前言 1)C++的类型转换分为两种,一种为隐式转换,另一种为显式转换. 2)C++中应该尽量不要使用转换,尽量使用显式转换来代替隐式转换. 1 隐 ...

  5. C++模板之隐式实例化、显示实例化、隐式调用、显示调用和模板特化详解

    模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程.对于函数模板而言,模板实例化之后,会生成一个真正的函数.而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始 ...

  6. 第一行Kotlin系列(二)Intent隐式显式跳转及向下传值

    1.Intent显式跳转页面 val button5 = findViewById<Button>(R.id.mButton5) button5.setOnClickListener { ...

  7. Android 隐式意图和显示意图的使用场景

    本文实现一个隐式意图的应用,激活短信应用 public void click4(View view) { Intent intent = new Intent(); intent.setAction( ...

  8. Android 设置隐式意图

    AndroidManifest.xml对于被调用的activity: <activity android:name="com.wuyou.twoactivity.OtherActivi ...

  9. android 利用隐式Intent打开图片

    实现功能   点击"查看图片"时能够跳出提示,选择系统图库打开还是自己编写的应用打开,并且对于下载好的图片也有效. 1.我将 qiaoba.jpg 放在 res/drawable  ...

随机推荐

  1. Java 文件操作大全

    Java 文件操作大全 //1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPat ...

  2. Pentaho Data Integration Step: BD Procedure Call

    官网连接:http://wiki.pentaho.com/display/EAI/Call+DB+Procedure 描述 调用数据库存储过程步骤允许用户执行一个数据库存储过程,并且得到结果.存储过程 ...

  3. Hbase案例分析(一)

    Hbase应用场景: 1 随机读或者写 2 大数据上的高并发操作,比如每秒对PB级数据进行上千次操作.(查询,删除等操作) 3 读写均是非常简单的操作,比如没有join操作 Hbase Schema设 ...

  4. 基于opencv的小波变换

    基于opencv的小波变换 提供函数DWT()和IDWT(),前者完成任意层次的小波变换,后者完成任意层次的小波逆变换.输入图像要求必须是单通道浮点图像,对图像大小也有要求(1层变换:w,h必须是2的 ...

  5. IEEE二进制浮点数算术标准(IEEE 754)

    整理自IEEE 754 IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.这个标准定义了表示浮点数的格式(包括负零-0) ...

  6. 分析ECMall的注册与登录机制

    ecmall的注册流程index.php?app=member&act=register. 首先app是member,act是register方法. index.php中.通过ecmall的s ...

  7. 【网络流24题】 No.2 太空飞行计划问题 (最大闭合权图 最大流 )

    原题:         W教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合 E={E1,E2,...,Em},和进行这些实验需 ...

  8. 李洪强iOS开发Swift篇---11_变量&常量&元组

    李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...

  9. postMan 使用

    Postman功能(https://www.getpostman.com/features) 主要用于模拟网络请求包 快速创建请求 回放.管理请求 快速设置网络代理 安装 下载地址:https://w ...

  10. hadoop2.2编程: 重写comparactor

    要点: 类型比较在hadoop的mapreduce中非常重要,主要用来比较keys; hadoop中的RawComparator<T>接口继承自java的comparator, 主要用来比 ...