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. cocos2d-x Tests讲解 Particle System(粒子系统)

    转载请注明出处: http://www.cnblogs.com/shangdahao/archive/2012/04/14/2447571.html 一.粒子系统简介: 粒子系统最早出现在80年代,主 ...

  2. 【转】WPF中的Binding技巧(二)

    WPF中的Binding技巧(二)     接上篇, 我们来看一看Elementname,Source,RelativeSource 三种绑定的方式 1.ElementName顾名思义就是根据Ui元素 ...

  3. The Unified Modeling Language(UML)

    统一过程建模语言UML 统一过程建模语言UML是一种标准的可视化建模语言,使用在:  业务建模和类似的过程 居于软件系统的分析.设计.和实现 UML 是一门通用语言,提供给业务分析员,软件架构师和开发 ...

  4. 制作qtopia-2.2.0和qt4文件系统

    转自 rootfs_qtopia_qt4.img 1. 解压rootfs_qtopia_qt4-20100816.tar.gz,得到目录rootfs_qtopia_qt4,里面内容比较大,超过了64M ...

  5. Android njava.net.UnknownHostException: Unable to resolve host

    我在android开发的时候经常会遇到这个错误,一般来说,造成这种错误的最普遍情况有两种:  1.android设备网络连接没打开,例如3G网络和WIFI网络 所以,如果遇到这种错误时,请先查看网络是 ...

  6. 【HDU 4992】 Primitive Roots (原根)

    Primitive Roots   Description We say that integer x, 0 < x < n, is a primitive root modulo n i ...

  7. SpringSecurity的简单应用(一)

    java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...

  8. 李洪强iOS开发Swift篇—07_函数

    李洪强iOS开发Swift篇—07_函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 ...

  9. Android ListView异步加载数据

    1.主Activity public class MainActivity extends Activity { private ListView listView; private ArrayLis ...

  10. TDBGrideh表头自动排序设置

    自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序DBGridEh组件可以在标题行单元格中显示小三角形升.降排序标志符图片,在运行时可点击标题行,图片自动切换并做相应排序. 具体属性设置如下: ...