【Android】10、使用显式Intent

本篇博文最后修改时间:2016年4月11日,22:37。


一、简介

本篇介绍显式Intent。


二、实验平台
系统版本:Windows7 家庭普通版 32位操作系统。

三、版权声明
博主:思跡
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.net/omoiato

联系方式:315878825@qq.com

Java零基础入门交流群:541462902


四、显式Intent

1、Intent是什么?


Intent 是Android 程序中各组件之间进行交互的一种重要方式,

它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。

Intent 一般可被用于启动活动、启动服务、以及发送广播等场景,

由于服务、广播等概念我们暂时还未涉及,

那么本章我们的目光无疑就锁定在了启动活动上面。

Intent 的用法大致可以分为两种,显式Intent 和隐式Intent,


我们先来看一下显式Intent如何使用。
Intent 有多个构造函数的重载,其中一个是Intent(Context packageContext, Class<?> cls)。
这个构造函数接收两个参数:

第一个参数Context 要求提供一个启动活动的上下文。

第二个参数Class 则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent 的“意图”。


我们应该怎么使用这个Intent 呢?

Activity 类中提供了一个startActivity()方法,

这个方法是专门用于启动活动的,它接收一个Intent参数,

这里我们将构建好的Intent传入startActivity()

方法就可以启动目标活动了。


2、怎样才能实现由主活动跳转到其他活动呢?


①在ActivityTest项目中新建一个second_layout.xml 布局文件,并定义一个按钮Button2



代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 2"
/>
</LinearLayout>


新建活动SecondActivity 继承自Activity

代码如下:

public class SecondActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.second_layout);
    }
}


③在AndroidManifest.xml 中为SecondActivity注册
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".FirstActivity"
        android:label="This is FirstActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SecondActivity" >
    </activity>
</application>



由于SecondActivity 不是主活动,因此不需要配置<intent-filter>标签里的内容。

注册活动的代码也是简单了许多。

现在第二个活动已经创建完成,

剩下的问题就是如何去启动这第二个活动了。


④修改FirstActivity中按钮的点击事件

代码如下所示:

button1.setOnClickListener(new OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivity(intent);
    }
});



我们首先构建出了一个Intent,

传入FirstActivity.this 作为上下文

传入SecondActivity.class作为目标活动,

这样我们的“意图”就非常明显了:

即在FirstActivity 这个活动的基础上打开SecondActivity 这个活动,

然后通过startActivity()方法来执行这个Intent。



⑤重新运行程序,在FirstActivity 的界面点击一下按钮

运行结果:


可以看到,我们已经成功启动SecondActivity 这个活动了。

如果想要回到上一个活动怎么办呢?

很简单,按下Back 键就可以销毁当前活动,从而回到上一个活动了。
使用这种方式来启动活动,Intent 的“意图”非常明显,因此我们称之为显式Intent。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值