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. Ogre实现简单地形

    利用SimpleRenderable实现DirectX 9 3D 游戏设计入门中 第十三章 地形渲染基础的简单地形,只是简单的实现了地形的基本框架,顶点,索引,纹理等,为简单起见高度都为1,适合新手做 ...

  2. iOS -一些常用的方法

    1.获取本地的语言 + (NSString *)getLocalLanguage { NSString *language = [[[NSUserDefaults standardUserDefaul ...

  3. App评分

    //应用实现评论跳转的两种方法: //第一种: //在iOS6.0前跳转到AppStore评分一般是直接跳转到AppStore评分 //NSString *evaluateString = [NSSt ...

  4. C#在声明对象时对其赋值的一种方式

    今天学会一种更方便的赋值方式,如下, 同时存档一个通过 打开对话框 获取地址的方式. private string GetSaveAsPathXls(string defaultFileName) { ...

  5. 在Eclipse中安装ADT

    启动 Eclipse,然后选择 Help > Software Updates….在出现的对话框中,单击 Available Software 选项卡. 单击 Add Site 在 Add Si ...

  6. Android 模拟登陆 保存密码(信息)到手机中 文件信息读取

    package com.wuyou.login; import java.io.IOException; import java.util.Map; import android.app.Activi ...

  7. 三年所有JAVA技术文档列表

    学习工作流workflow管理基础概念.pdf 深入浅出Struts2(PDF).zip 深入浅出Hibernate.pdf 敏捷软件开发:原则.模式与实践.rar 精通Oracle.10g.Pl.S ...

  8. 9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法

    在使用到9.png的布局上面添加 android:padding="0dip" 比如 <LinearLayout            android:layout_widt ...

  9. centos挂载移动硬盘

    yum install ntfs-3g sudo mount -t ntfs-3g /dev/sdc1 /mnt/mobiledisk https://tuxera.com/opensource/nt ...

  10. sql server 2005+ 行转列

    )) , 'aa') , 'bb') , 'aaa') , 'bbb') , 'ccc') go , , '') from tb group by id