上一节,我们通过对Activity的UI属性设置,完成了一个类似Activity切换的程序,可是大家都知道,明明只有一个Activity的子类存在于程序当中,谈何切换呢?
本节将从实质上去完成这个功能。
进入本文之前,我们先来看看一个类;android.content.Intent
Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION请求给Android,Android会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器Activity来浏览网页。
简单说来,Intent允许在一个Activity中调用另外一个Activity,并且允许在不同的Activity之间传递参数。
这一节,我们只介绍怎样在Activity内调用另外一个Activity,并不传递参数。
先来看效果图:
因为本程序涉及的类和文件比较多,为了简便,就不在strings.xml中设置程序用到的字符串了,直接在文件和类里面使用。
先在程序自己生成的main.xml中设置第一个Activity的布局配置,包括一个TextView和一个Button,代码如下所示:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="欢迎来到IrvingSun的安卓程序"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击进入下一页"
/>
而后,我们再在此目录下,重新生成一个mylayout.xml,同样是配置一个TextView和一个Button,这个xml的配置是为了第二个Activity而准备的,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="对不起程序出错了,请点击“上一步”返回操作"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上一页"
/>
</LinearLayout>
接下来就是分别把这两个xml分别关联到两个Activity的子类中去,并且为两个Button关联上点击事件,在事件的实现中,添加上Intent类的功能,就大功告成啦。
其中,Activity1的代码如下,
public class AndroidWithIntent_Activity1 extends Activity {
private Button button1 ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//关联UI配置
setContentView(R.layout.main);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//new 一个Intent对象,并指定要启动的class
Intent intent = new Intent();
intent.setClass(AndroidWithIntent_Activity1.this, AndroidWithIntent_Activity2.class);
startActivity(intent);
AndroidWithIntent_Activity1.this.finish();
}
});
}
}
其中
intent.setClass(AndroidWithIntent_Activity1.this, AndroidWithIntent_Activity2.class);
startActivity(intent);
这句说明,Intent是要从Activity1跳转到Activity2,
startActivity(intent);说明从intent中获取信息,跳转。
而后面的
AndroidWithIntent_Activity1.this.finish();
是指将这个Activity1给关闭了。
同样的道理,Activity2的代码也应该是这样的套路,代码如下,就不具体再分析了;
public class AndroidWithIntent_Activity2 extends Activity {
private Button button2 ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
button2 = (Button)findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//new 一个Intent对象,并指定要启动的class
Intent intent = new Intent();
intent.setClass(AndroidWithIntent_Activity2.this, AndroidWithIntent_Activity1.class);
startActivity(intent);
AndroidWithIntent_Activity2.this.finish();
}
});
}
}
最后,我们需要将我们自己新建的Activity配置进入AndroidManifest.xml,
在该文件中,存在application标签,里面存放的是Activity标签,可以看到,我们生成好的Activity1已经配置好在里面了,在该Activity的同级位置,添加如下代码:
<activity android:name="AndroidWithIntent_Activity2"></activity>
这样我们的系统就可以识别我们新建的Activity类了。
在下一节我们将介绍如何在Activity之间切换的同时,传递点数据过去,就像是在html页面间传递数据一样。
- 大小: 18.4 KB
- 大小: 17.2 KB
分享到:
相关推荐
Android Activity学习笔记 Android Activity是Android系统中最基本的组件之一,它负责处理用户交互和显示用户界面。本文将深入讲解Activity的生命周期、Activity之间的数据交互、Activity启动模式、Task和BackStack...
在Android开发中,Splash屏幕,或称为启动页,是一个应用程序启动时短暂展示的界面,通常包含应用程序的标志、开发商信息、应用名称和版本等。它主要用于提升品牌形象,展示加载进度,或者进行一些初始化操作。虽然...
首先,`onConfigurationChanged` 方法是 `Activity` 类的一个回调方法,当设备的配置发生改变时,如屏幕方向的切换(横屏到竖屏或反之)、系统语言的更改、键盘的展开或收起等,系统会调用这个方法,而不是重新创建 ...
在Android应用开发中,Activity是用户界面的基本单元,它的生命周期管理是至关重要的,因为它直接影响到用户体验和应用性能。本文将详细探讨如何在Android中正确处理Activity的停止与重启。 Activity的生命周期包括...
在`Android学习笔记(三六):横屏竖屏的切换`中,我们了解到可以通过在`layout-land`目录下创建针对横屏的布局文件,让应用在横屏模式下使用不同的UI设计。如果没有提供横屏布局,系统会自动调整竖屏布局以适应横屏...
本篇笔记主要讲述了如何在Android中实现横屏竖屏的切换以及在此过程中可能遇到的问题。 首先,对于模拟器而言,横屏和竖屏的切换非常方便,只需按下快捷键`Ctrl+F12`,即可快速在竖屏(portrait)和横屏(landscape...
本篇笔记将深入探讨Activity的生命周期,这是每个Android开发者必须掌握的核心概念。通过理解Activity生命周期,我们可以有效地管理资源,优化用户体验,并确保应用在各种场景下表现稳定。 Activity的生命周期由一...
### Android初学者开发笔记知识点详解 #### 一、六大布局详解 在Android开发过程中,合理的布局设计对于用户体验至关重要。下面详细介绍六种常见的Android布局及其特点。 ##### 1. **FrameLayout(帧布局)** - *...
- 启动其他的Activity:解释如何在App中切换不同的屏幕。 - 添加ActionBar:讲解如何为应用添加顶部的导航栏。 - 自定义ActionBar的风格:展示如何个性化ActionBar的设计。 -ActionBar的覆盖层叠:讨论如何处理...
在Android系统中,任务栈(Task Stack)是应用程序运行的核心组成部分,它关乎着应用的启动、切换以及用户界面的管理。本自学笔记将深入探讨Android的任务栈机制,以帮助开发者更好地理解和利用这一特性来优化用户...
在本篇自学笔记中,我们将深入探讨Activity如何启动、运行、暂停、恢复以及销毁,以及在这些状态之间转换时应如何适当地管理资源。 首先,Activity的生命周期主要由七个关键回调方法组成: 1. **onCreate()**: 当...
1、创建一个自己的Activity 2、启动activity-显示启动和隐式启动: 3、隐式启动自己的activity 4、获取隐启动传递过来的data数据 5、显示启动传递数据 6、禁用掉横竖屏切换 7、开启activity获取返回值-...
Android ViewPager 是 Android 应用中的一个重要控件,用于实现应用程序的滑动切换。ViewPager 可以使用多种适配器,例如 FragmentPagerAdapter 或者 PagerAdapter 等。 Android 基础笔记涵盖了 Android 开发的...
这篇笔记主要探讨了Activity的生命周期,这是每个Android开发者都需要深入理解的关键概念。Activity的生命周期包括了一系列的状态变化,这些状态反映了Activity在应用程序中的存活状态,以及如何响应系统资源的变化...
### Android App笔记 #### 一、Android概述 **Android** 是一种基于Linux内核的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑。它由Google公司和开放手机联盟领导及开发。虽然没有统一的...
在Android应用开发中,Activity和Intent是两个至关重要的概念,它们构成了Android应用程序的基本交互机制。这篇笔记将深入探讨这两个核心组件以及它们之间的关联。 Activity在Android系统中扮演着视图窗口的角色,...
这篇学习笔记将引导新手入门,通过创建第一个简单的案例来了解Android Studio的基本操作。 首先,让我们了解一下Android Studio的核心功能。它基于IntelliJ IDEA,具备代码自动补全、重构、调试等强大的开发特性。...
- 类似Activity切换效果的实现,例如使用layout切换。 12. activityForResult的使用 - activityForResult的实现机制和使用方法,用于在Activity间进行结果返回。 整个笔记强调了在Android学习过程中,Java编程...
在Android开发中,笔记中的知识点主要集中在Intent、Activity的生命周期以及UI交互方面。下面是对这些概念的详细解释: 1. **Intent**: Intent是Android中的一种重要机制,用于启动或通信不同组件,特别是Activity...