Intent用法——在活动之间跳转(一)

声明:主要内容均来自于郭神的《Android-第一行代码》(第二版)。将行文思路做了整理和优化,更加清晰明了,便于初学者学习。

本文的主要目录如下:

  • Intent是什么
  • 显式Intent
  • 隐式Intent

Intent是什么

Intent是Android程序中各组件进行交互的一种重要方式,它的主要功能有启动活动/服务,发送广播,在不同组件/活动之间传递数据。今天来介绍Intent的第一个功能——在活动之间跳转。

下面开始各部分的详细介绍,不同层级之间以标题级别区分。

显式Intent

在这个部分,将通过一个活动跳转的实例来帮助大家理解显示Intent的用法。大致行文思路如下:

  • 建立FirstActivity
  • 建立SecondActivity
  • 用Intent实现由First–>Second

下面开始各部分的详细介绍。

  • 建立FirstActivity

FirstActivity的建立有两种方式,可以在项目生成的时候直接选择Empty Activity;也可以通过在空项目(Add No Activity)中手动添加Empty Activity。
注意,如果是第二种情况,需要在AndroidManifext.xml中的 部分进行注册,具体代码如下:

<activity android:name=".FirstActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

其中 内的部分代表FirstActivity在这个项目中是我们的主活动,也就是app打开后出现的第一个界面。

FirstActivity新建完成后,将FirstActivity的布局文件(.xml)中的代码做如下替换:


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

这样FirstActivity的预览布局中就有了一个名字叫“Button 1”的按钮(贴图有点麻烦嘤嘤嘤原谅偷懒~),此时FirstActivity的布局基本完成。

  • 新建SecondActivity

接下来新建SecondActivity。右击com…..包->Activity->Empty Activity,勾选Generate Layout File, 将布局文件命名为second_layout,不勾选Launcher Activity选项(如果勾选此选项证明此活动为主活动)。

编辑second_layout.xml文件,将其中的代码进行如下替换:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button 2"/>
LinearLayout>

这样我们的SecondActivity就有了一个叫“Button 2”的按钮。

  • 用Intent实现从FirstActivity到SecondActivity的跳转

    在FirstActivity的protected void onCreate(Bundle savedInstanceState)函数内添加代码修改FirstActivity中按钮的点击事件,添加的按钮点击响应代码如下:

button1.setOnClickListener(new View.OnClickListener(){
           @Override
            public void onClick(View v){

               //这个是click启动第二个activity,显示intent
              Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
              startActivity(intent);

代码解释:

上方代码体现了Intent多个构造函数重载中的一个,Intent(Context packageContext,Classcls,这个构造函数接受两个参数,第一个参数Context要求提供一个启动活动的上下文(也就是跳转前的活动,在这里就是FirstActivity),第二个参数Class则是想要启动的目标活动。

在这个例子中,我们提供的启动活动的上下文就是FirstActivity.this,而目标活动就是SecondActivity.class

在Activity类中,提供了一个startActivity()方法,专门用于启动活动,它接受一个Intent参数,我们将新建好的Intent传入startActivity()就可以启动目标活动SecondActivity啦。

Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
              startActivity(intent);

这两行代码的意思就是:

  1. 我们想要在FirstActivity活动中打开SecondActivity。
  2. 我们通过startActivity来执行我们的意图(intent)。

隐式Intent

在隐示Intent部分,将给出3个主要例子,来帮助对其的理解。

其实…我本来是想要一下子写完的,然而我发现写博客原来是如此枯燥的一件事情QWQ所以姑且先写显式Intent吧…隐式Intent下次再更~~
希望自己可以坚持下来OWO
如果你可以看到这篇文章,希望它对你有所帮助^_^

你可能感兴趣的:(Android)