您的位置:华清远见教育科技集团 >> Android资料 >> 如何使用Intent显式启动Activity?  
 
如何使用Intent显式启动Activity?
分享到:

在Android系统中,应用程序一般都有多个Activity,Intent可以实现不同Activity之间的切换和数据传递。启动Activity方式有以下两种方式:

·显式启动,必须在Intent中指明启动的Activity所在的类。

·隐式启动,Android系统根据Intent的动作和数据来决定启动哪一个Activity,即在隐式启动时,Intent中只包含需要执行的动作和所包含的数据,而无须指明具体启动哪一个Activity,选择权由Android系统和终用户来决定。

如何使用Intent显式启动Activity?使用Intent显式启动Activity,首先需要创建一个Intent,指定当前的应用程序上下文及要启动的Activity,并把创建好的Intent作为参数传递给startActivity()方法。代码如代码清单1所示。

代码清单1 显式启动

Intent intent = new Intent(IntentDemo.this, Activity2.class);
    startActivity(intent);

以下将通过一个IntentDemo示例来详细讲解如何使用Intent显式启动新的Activity。

IntentDemo示例中包含IntentDemo和Activity2这两个Activity类,程序启动是默认启动IntentDemo这个Activity,启动画面如图1所示。

在图1的界面中,单击“跳转到Activity2”按钮后,程序启动Activity2这个Activity,界面如图2所示。

  
图1 名为IntentDemo的Activity界面          图2 名为Activity2的Activity界面

为使程序达到上述效果,首先,在AndroidManifest.xml文件中注册上面两个Activity,应使用<activity>标签,嵌套在<application>标签内部。代码如代码清单2所示。

代码清单2 AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="//schemas.android.com/apk/res/android"
        package="com.example.IntentDemo"
        android:versionCode="1"
        android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".IntentDemo"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2"
            android:label="@string/app_name">
        </activity>
        </application>
    <uses-sdk android:minSdkVersion="3" />
    </manifest>

在Android应用程序中,用户使用的每个组件都必须在AndroidManifest.xml文件中的<application>节点内定义,所以<application>节点下共有两个<activity>节点,分别代表应用程序中所使用的两个Activity:IntentDemo和Activity2。

在IntentDemo.java文件中,包含了显示使用Intent启动Activity2的核心代码,如代码清单3所示。

代码清单3 IntentDemo.java

Button button = (Button)findViewById(R.id.btn);
    button.setOnClickListener(new OnClickListener(){
    public void onClick(View view){
            Intent intent = new Intent(IntentDemo.this, Activity2.class);
            startActivity(intent);
        }
    });

在单击事件的处理函数中,Intent构造函数的第1个参数是应用程序上下文,应用程序上下文是IntentDemo;第2个参数是接收Intent的目标组件,使用的是显式启动方式,直接指明了需要启动的Activity。

同理,在Activity2.java文件中,包含了显示使用Intent启动IntentDemo的核心代码,如代码清单4所示。

代码清单4 Activity2.java

Button button = (Button)findViewById(R.id.btn);
    button2.setOnClickListener(new OnClickListener(){
        public void onClick(View view){
            Intent intent = new Intent(Activity2.this, IntentDemo.class);
            startActivity(intent);
        }
    });

 更多相关文章

·Android开发中Intent属性详解
·Android Activity 四种启动模式的区别
·Android Activity的四种启动模式
·Activity的生命周期回调方法
·图解Android Activity生命周期