码迷,mamicode.com
首页 > 移动开发 > 详细

Android Activity之间的跳转

时间:2018-11-17 00:28:03      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:之间   intent   抽象   set   名称   tar   pac   没有   text   

  • Activity之间的跳转需要用到Intent(意图)组件,通过Intent可以开启新的Activity实现界面跳转功能。
  • Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。根据开启目标组件的方式不同,Intent被分为显式意图隐式意图两种类型。

  显式意图:

   显式意图可以直接通过名称开启指定的目标组件,通过其构造方法Intent(Context packageContext , Class<?> cls)来实现,第一个参数为Context表示当前的Activity对象,第二个参数Class表示要启动的目标Activity,通过这个方法创建一个Intent对象,然后将该对象传递给Activity的startActivity(Intent intent)方法即可启动目标组件。示例代码如下:

//从当前页面跳转到Activity02界面
Intent intent = new Intent(this,Activity02.class);    //创建Intent对象
startActivity(intent);    //开启Activity02

  隐式意图:

   隐式意图相比显示意图来说更为抽象,它并没有明确指定要开启哪个目标组件,而是通过指定action和category等属性信息,系统根据这些信息进行分析,然后寻找目标Activity。其示例如下:

Intent intent = new Intent();
//设置action动作,该动作要和清单文件中设置的一样
intent.setAction("cn.START_ACTIVITY");
startAvtivity(intent);

  上述代码中,只指定了cation,并没有指定category,这是因为在目标Activity的清单文件中配置的category只是一个默认值,在调用startActivity()方法时,自动将这个category添加到Intent中。接下来还需要在目标Activity的清单文件中配置    ,指定当前Activity能够响应的action和category,示例代码如下:

<activity android:name="cn.Activity02">
            <intent-filter>
                <action android:name="cn.START_ACTIVITY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

  在清单文件中,目标组件Activity02指定了可以响应的<action>和<category>信息,只有当action和category属性与目标组件设置的内容相同时,目标组件才会被开启。需要注意,每个Intent只能指定一个cation,却能够指定多个category。

      

Android Activity之间的跳转

标签:之间   intent   抽象   set   名称   tar   pac   没有   text   

原文地址:https://www.cnblogs.com/liyuefu2034/p/9971574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!