使用Intent实现Activity的显示跳转

【正文】

这里以按钮实现活动跳转为例,为实现这个功能,我们需要三个步骤:

1.点击按钮才发生页面跳转,因此,第一步我们先要找到要点击的按钮

如何拿到按钮对象呢?通过资源id,前面我们提到过,在R.id.xxx 中会有我们的资源id,但button按钮是在layout 中创建的,系统不会为其创建资源id,所以我们需要在layout 设置 button 时自己加上id,、,具体方法如下:

在Activity_main.xml中

<Button
       android:id="@+id/button1"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="点我点我!"
       android:textSize="25sp"/>  

可以看到设置id 的方法是 id = "@+id/button1",这里button1 即我们将使用的资源id。

2.找到按钮之后,点击按钮之后才会发生跳转,所以我们需要给这个按钮绑定事件监听器

3.当有点击事件产生后,事件监听器就会监听到点击事件,然后去回调事件监听其中的onClick方法实现跳转

package cn.com.farsight.activity02;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /*
         * 点击一个按钮,完成从一个页面跳转到另外一个页面
         */

        // 1.点击按钮才发生页面跳转,因此,第一步我们先要找到要点击的按钮
        Button button = (Button) findViewById(R.id.button1);

        // 2.找到按钮之后,点击按钮之后才会发生跳转,所以我们需要给这个按钮绑定事件监听器

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //3.当有点击事件产生后,事件监听器就会监听到点击事件,然后去回调事件监听其中的onClick方法
                //在这里,我们就需要完成页面跳转了
                //构建了一个Intent对象,来完成页面跳转
                Intent intent = new Intent(MainActivity.this, Second.class);
                startActivity(intent);
            }
        });
    }
}

二、使用 Intent 实现活动的显示跳转

这里我们以按钮实现活动跳转为例,为实现这个功能,我们需要三个步骤:

1、拿到按钮对象

如何拿到按钮对象呢?通过资源id,前面我们提到过,在R.id.xxx 中会有我们的资源id,但button按钮是在layout 中创建的,系统不会为其创建资源id,所以我们需要在layout 设置 button 时自己加上id,、,具体方法如下:

[java] view plain copy

  1. <Button
  2. android:id="@+id/button1"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:text="点我点我!"
  6. android:textSize="25sp"/>

可以看到设置id 的方法是 id = "@+id/button1",这里button1 即我们将使用的资源id。

2、为此按钮设定点击监听事件

这样每当点击按钮时,就会执行监听器中的onClick()方法,我们只需要在这个方法中加入待处理的逻辑就行了;

具体代码如下:

[java] view plain copy

  1. public class MainActivity extends Activity {
  2. private Button button;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. button = (Button) findViewById(R.id.button);
  8. button.setOnClickListener(new OnClickListener() {
  9. @Override
  10. public void onClick(View v) {
  11. // 在此处添加逻辑
  12. }
  13. });
  14. }
  15. }

3、实现跳转

当然这是最重要的一步了,通过Intent 实现,我们先来了解一下Intent 函数;

Intent  意图,告诉系统我们要干什么,连接四大组件的纽带,可以启动活动、启动服务、发送广播;

公共构造函数:

1)、Intent() 空构造函数

2)、Intent(Intent o) 拷贝构造函数

3)、Intent(String action) 指定action类型的构造函数

4)、Intent(String action, Uri uri) 指定Action类型和Uri的构造函数,URI主要是结合程序之间的数据共享ContentProvider

5)、Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的

6)、Intent(String action, Uri uri, Context packageContext, Class<?> cls) 前两种结合体

Intent有六种构造函数,3、4、5是最常用的,并不是其他没用!

Intent(String action, Uri uri)  的action就是对应在AndroidMainfest.xml中的action节点的name属性值。在Intent类中定义了很多的Action和Category常量。

下面,我们来具体实现:

1)、创建Intent 对象

[java] view plain copy

  1. Intent intent = new Intent();

2)、把我们的意图封装进Intent 对象中

这里我们需要先了解 context :应用程序上下文,就是表示当前对象的一个语境,访问全局信息 的API

这里使用了Intent 的 setclass 方法,我们来看看其定义:

[java] view plain copy

  1. /**
  2. * Convenience for calling {@link #setComponent(ComponentName)} with the
  3. * name returned by a {@link Class} object.
  4. *
  5. * @param packageContext A Context of the application package implementing
  6. * this class.
  7. * @param cls The class name to set, equivalent to
  8. *            <code>setClassName(context, cls.getName())</code>.
  9. *
  10. * @return Returns the same Intent object, for chaining multiple calls
  11. * into a single statement.
  12. *
  13. * @see #setComponent
  14. */
  15. public Intent setClass(Context packageContext, Class<?> cls) {
  16. mComponent = new ComponentName(packageContext, cls);
  17. return this;
  18. }

这里 packageContext 即我们现在的 activity ,而Class<?> cls 则是我们的目的activity ,我们看看具体实现:

[java] view plain copy

  1. intent.setClass(MainActivity.this,SecondActivity.class);

3)告诉系统执行操作

[java] view plain copy

  1. startActivity(intent);

实现这三步就能基本实现活动的跳转了;

时间: 2024-10-13 16:01:22

使用Intent实现Activity的显示跳转的相关文章

Android开发之Activity的创建跳转及传值

在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大组件以后再进行介绍.说道Android中的Activity,如果你做过iOS开发的话,Activity类似于iOS中的ViewController(视图控制器).在应用中能看到的东西都是放在活动中的.活动是安卓开发比较重要的东西

使用Intent实现Activity之间传值与跳转(转)

转:http://blog.csdn.net/cjjky/article/details/6337447 在一个Android的应用程序中,很少只存在一个Activity,一般都有多个Activity,如何在多个Activity之间进行跳 转和传值呢?我们可以通过 Intent 对象来实现上面所述的功能.本例通过在FirstActivity中实现两个数进行相加,把相加的结果值通过Intent把值传递到 SecondActivity中. 我们新建一个Android的工程,有两个Activity,分

Android学习随记2(Intent实现Activity跳转)

一.简单的活动间跳转 btn1 = (Button)findViewById(R.id.first_btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this,SecondActivit.class); startActivity(intent); } }); 显式跳

安卓笔记五--四大组件之Activity(页面跳转,不同窗体传递数据)

安卓四大组件都是非常重要的知识,今天来说Activity .老规矩,用一张图来介绍今天的内容. 图片看不清的话可以右键新窗口打开 一,概述 Activity 是 Android 四大组件之一,它用于展示界面. Activity 是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务. Activity 中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过 setContentView(View)来显示指定控件. 在一个 android 应用中,一个 Activity 通常

两个activity之间的跳转与传值

一:什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置 <actionandroid:name="android.intent.action.MAIN" />当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作. 二:Activity的跳转与传值

Android中实现activity的页面跳转并传值

一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求. 本次我们就讲一下,Android中页面跳转以及传值的几种方式! Activity跳转与传值,主要是通过Intent类来连接多个Activity. 1. Intent显式意图 (1) 最常见最一般的页面跳转代码,很简单,如下: Intent intent = new Intent(A.this, SecondActivity.class); startActi

Android Activity之间的跳转

Activity之间的跳转需要用到Intent(意图)组件,通过Intent可以开启新的Activity实现界面跳转功能. Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递.根据开启目标组件的方式不同,Intent被分为显式意图和隐式意图两种类型. 显式意图: 显式意图可以直接通过名称开启指定的目标组件,通过其构造方法Intent(Context packageContext , Class<?> cls)来实现

从0系统学Android-2.3使用 Intent 在 Activity 之间穿梭

2.3 使用 Intent 在 Activity 之间穿梭 在上一节中我们已经学会了如何创建一个 Activity 了.对于一个应用程序来说,肯定不可能只有一个 Activity.下面就来学习多个 Activity 是专门跳转的. 2.3.1 使用显式 Intent 对于创建 Activity 的过程我们已经很熟悉了,下面快速的创建第二个 Activity.取名 SecondActivity.好了第二个 Activity 已经创建好了,创建好了 Activity 后不要忘了需要在 Android

android开发中,两个按下手机实体返回键,两个Activity反复来回跳转的问题

android开发中,对于用intent实现跳转的Ativity,有时候按下手机的返回键时,两个Activity之间会多次相互跳转,始终退出不了程序的情况.这是由于从Activity  A跳转到Activity  B时,A被压入Activity栈中:当从B返回时,默认又重新创建了一个Activity A对象,这样一来就有了多个Activity A对象.所以造成了无法退出情况. 解决办法是:在AndroidManifest.xml文件中找到Activity A项,在其属性中加入  android: