基于Java语言的安卓编程学习之六Activity的切换

时间:2021-09-11 22:39:01

在“安卓编程学习第五天”中,实现了菜单项的响应。通过编辑“res->menu->main.xml”文件实现菜单项的添加,在onOptionsItemSelected()方法中通过getItemId()方法判断菜单中哪个项被选中,最终实现菜单项的响应。

在“安卓编程学习第四天”中,提到了按键响应的实现,当按下按键后,会改变TextView显示的内容。今天,将通过按键实现活动的切换,即按下按键后,从主活动切换到另外一个活动。

要实现活动的切换,首先要将新的活动加入到程序中。

1 活动的添加

将活动添加到程序中,主要包含以下三个步骤:首先添加活动对应的java文件;接下来添加活动对应的界面布局xml文件;最后在AndroidManifest.xml中对活动进行注册。

1.1 添加java文件

在“Hello_World->src->com.exmple.hello_world”上点击鼠标右键,在弹出的菜单中选择“New->Class”,如图1-1所示。

基于Java语言的安卓编程学习之六Activity的切换

图1-1 新建Java文件

在弹出的“New Java Class”对话框中,设置新建活动的名称及父类。在“Name”项中输入名称“Second_Activiy”,在“Superclass”项中设置活动的父类,将该父类设置为Activity,可以直接输入“android.app.Activity”指定Activity类的完成名称,也可以先输入Activity,之后点击右侧的“Browse...”按键,在弹出的对话框中选择“Activity-android.app”,最后点击“Finish”按键,完成java文件的添加,如图1-2所示。

基于Java语言的安卓编程学习之六Activity的切换

图1-2 设置活动名称及父类

其中“android.app.Activity”的含义是:android.app是一个包(package),而Activity是这个包中的一个类,而添加的Second_Activity是android.app包的Activity类的派生类。

完成以上步骤之后,就可以在左侧的“Package Explorer”中看到添加的Second_Activity的活动了,如图1-3所示。

基于Java语言的安卓编程学习之六Activity的切换

图1-3 Second_Activity活动对应的Java文件

1.2 界面布局文件的添加

在“Hello_World->res->layout”的右键菜单中选择“New->Android XML File”,如图1-4所示。


基于Java语言的安卓编程学习之六Activity的切换

图1-4 新建界面布局文件

在弹出的“New Android XML File”对话框中的“File”项上输入界面布局文件的名称,在此输入“secondactivity_main”,最后点击“Finish”按键,如图1-5所示。

基于Java语言的安卓编程学习之六Activity的切换

图1-5 设置界面布局文件的名称

此时,在左侧的“Package Explorer”中看到添加的界面布局文件secondactivity_main.xml了,如图1-6所示。

基于Java语言的安卓编程学习之六Activity的切换


图1-6 Second_Activity活动的界面布局文件

1.3 活动的注册

在AndroidManifest.xml中实现对新建活动的注册。鼠标左键双击“Hello_World->AndroidManifest.xml”,之后在右侧下方的选项卡中选择“AndroidManifest.xml”,之后在右侧上方即可以看到AndroidManifest.xml文件的内容了,如图1-7所示。

基于Java语言的安卓编程学习之六Activity的切换

图1-7 显示AndroidManifest.xml文件的内容

在<application></application>对添加的Second_Activity活动进行注册,代码如下所示

<activityandroid:name="com.example.hello_world.Second_Activity"

           android:label="第二个活动">

</activity>

其中,android:name指定了活动的名称,com.exmaple.hello_world.Second_Activity是新添加活动的完整名称;android:label表示活动的标题。

在向程序中添加完活动之后,接下来实现的功能是当按下主活动的按键时,切换到刚刚添加的活动上。

2 活动的切换

两个活动间的切换可以通过Intent类来实现。Intent描述了一个操作,包含操作的数据和操作的动作等。而在“安卓编程学习第四天”中提到,在MainActivity类的onCreate()方法中实现按键的响应,即在setOnClickListener()方法中实现。

2.1 Intent对象的创建

因此,首先在setOnClickListener()方法中使用new定义一个Intent类的对象,定义Intent类的对象需要使用到Intent类的构造函数,这个类的构造函数有很多种,其中一种的格式为

public Intent(Context packageContext,Class<?> cls)

其中,PackageContext表示使用Intent类的应用程序包的上下文;cls表示使用Intent类的组件类。

使用该构造函数,通过new关键字定义Intent类对象的代码是

Intent intent = new Intent(MainActivity.this, Second_Activity.class);

其中,MainActivity是主活动,MainActivity.this表示包的上下文;Second_Activity是刚创建的活动,Second_Activity.class表示活动的类。

2.2 Intent的启动

接下来调用Activity类的startActivity()方法启动Intent。该方法的格式为

public abstract void startActivity(Intent intent)

其中,参数intent表示要启动的Intent。使用startActivity()方法启动Intent的代码为

startActivity(intent);

在模拟设备中运行该代码,当点击主活动的按键时,会切换到添加的第二个活动上去,如图2-1所示。

基于Java语言的安卓编程学习之六Activity的切换

图2-1 切换到第二个活动

从第二个活动切换到主活动时,只需要点击模拟设备右侧的“返回”按键即可。

3 小结

今天学习了两个活动之间的切换。首先完成活动的添加,是通过三个步骤实现的,分别是添加活动对应的java文件;添加活动对应的界面布局xml文件;在AndroidManifest.xml中对活动进行注册。接下来在MainActivity类的onCreate()方法中实现按键的响应,即在setOnClickListener()方法中完成对Intent类对象的创建和启动。当点击了主活动中的按键时,会切换到添加的活动,而点击模拟设备右侧的“返回”按键,即可实现从添加的活动切换回主活动。