Android实现Activity之间通信的方法

本文实例讲述了Android实现Activity之间通信的方法。分享给大家供大家参考。具体如下:

在一个Activity中可以使用系统提供的startActivity(Intent intent)方法打开新的Activity,在打开新的Activity前,你可以决定是否为新的Activity传递参数。

第一种:打开新的Activity,不传递参数

public class MainActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button btnOpen=(Button)this.findViewById(R.id.btnOpen);
    btnOpen.setOnClickListener(new View.OnClickListener(){
      public void onClick(View v) {
        //新建一个显式意图,第一个参数为当前Activity类对象,第二个参数为你要打开的Activity类
        startActivity(new Intent(MainActivity.this, OtherActivity.class));
      }
    });
  }
}

第二种:打开新的Activity,并传递若干个参数给它

package com.ljq.activitys;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button btnOpen=(Button)this.findViewById(R.id.btnOpen);
    btnOpen.setOnClickListener(new View.OnClickListener(){
      public void onClick(View v) {
        //第一种:打开新的Activity,不传递参数
        //新建一个显式意图,第一个参数为当前Activity类对象,第二个参数为你要打开的Activity类
        //startActivity(new Intent(MainActivity.this, OtherActivity.class));
        //第二种:打开新的Activity,并传递若干个参数给它
        Intent intent=new Intent(MainActivity.this, OtherActivity.class);
        //Bundle类用作携带数据
        Bundle bundle=new Bundle();
        bundle.putString("name", "linjiqin");
        bundle.putInt("age", 24);
        //附带上额外的数据
        intent.putExtras(bundle);
        startActivity(intent);
      }
    });
  }
}

在新的Activity中接收前面Activity传递过来的参数

package com.ljq.activitys;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class OtherActivity extends Activity {
  private final static String TAG="OtherActivity";
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.other);
    //在新的Activity中接收前面Activity传递过来的参数
    Bundle bundle=this.getIntent().getExtras();
    String name=bundle.getString("name");
    Integer age=bundle.getInt("age");
    Log.i(TAG, name+" : "+age);
  }
}

希望本文所述对大家的Android程序设计有所帮助。

(0)

相关推荐

  • Android编程之Activity中onDestroy()调用分析

    本文分析了Android编程之Activity中onDestroy()调用方法.分享给大家供大家参考,具体如下: 刚刚一个BUG让我发现,如果 activity 实现了一个回调接口,然后使用 this 设置给需要回调接口的方法,这种应用场景比较常见,最常见的就是实现 onClickListener 接口,然后 findViewById().setOnClickListenr(this) 如果,这个回调接口设置到了一个静态对象(单例模式),当 activity finish() 的时候(按返回键,

  • Android编程实现两个Activity之间共享数据及互相访问的方法

    本文实例讲述了Android编程实现两个Activity之间共享数据及互相访问的方法.分享给大家供大家参考,具体如下: 本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符.数值.成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题,发出来大家讨论一下.本人学习android不久,幼稚的地方希望大家不要见笑 原理:假设有两个Ac

  • 深入解读Android开发中Activity的生命周期

    什么是Activity        首先,Activity是Android系统中的四大组件之一,可以用于显示View.Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,但是如果这样就能说Activity主要是用来显示View就不太正确了. 在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE 中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很清楚,下面我

  • Android编程之四种Activity加载模式分析

    本文分析讲述了Android编程之四种Activity加载模式.分享给大家供大家参考,具体如下: Activity状态 一般认为Activity有以下四种状态: ① 活动的:当一个Activity在栈顶,它是可视的.有焦点.可接受用户输入的.Android试图尽最大可能保持它活动状态,杀死其它Activity来确保当前活动Activity有足够的资源可使用.当另外一个Activity被激活,这个将会被暂停. ② 暂停:在很多情况下,你的Activity可视但是它没有焦点,换句话说它被暂停了.有可

  • Android编程获取并设置Activity亮度的方法

    本文实例讲述了Android编程获取并设置Activity亮度的方法.分享给大家供大家参考,具体如下: 此API只适合2.1以上版本: /** * 判断是否开启了自动亮度调节 * * @param aContext * @return */ public static boolean isAutoBrightness(ContentResolver aContentResolver) { boolean automicBrightness = false; try { automicBright

  • Android Activity中onStart()和onResume()的区别分析

    本文分析了Android Activity中onStart()和onResume()的区别.分享给大家供大家参考,具体如下: 首先你要知道Activity的四种状态: ① Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态. ② Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态.此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它

  • Android的Activity加载方式实例分析

    本文实例分析了Android的Activity加载方式.分享给大家供大家参考,具体如下: 前面分析过Android中activity的加载方式(参考前面一篇<Android编程之四种Activity加载模式分析>),这里进一步分析一下. 关于Activity加载方法,无非就是 Intent intent = new Intent(); intent.setClass(ActA.this, ActA.class); startActivity(intent); 以前遇到的一个问题:不停运行这段代

  • 简单介绍Android开发中的Activity控件的基本概念

    Activity是最基本的模块,一般称之为"活动",在应用程序中,一个Activity通常就是一个单独的屏幕.简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如监听系统事件,为用户显示指定的View,启动其他Activity等.所有应用的Activity都继承于android.app.Activity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能. Activity 生命周期图如下: 在a

  • Android编程中activity的完整生命周期实例详解

    本文实例分析了Android编程中activity的完整生命周期.分享给大家供大家参考,具体如下: android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误.这篇文章很长,希望不要耽误大家的时间- 今天不会涉及太多关于activity栈的东西,主要说activity自身的生命周期 区分几个概念 1 Activity 官方解释为 "An Activity is an application component that pro

  • Android编程四大组件之Activity用法实例分析

    本文实例讲述了Android编程四大组件之Activity用法.分享给大家供大家参考,具体如下: 这里详细介绍如何创建Activity.生命周期.内存管理.启动模式. 创建Activity 一.定义Activity 1. 定义Activity 定义类继承Activity 2.在AndroidManifest.xml的节点中声明<activity> 显式意图创建Activity三种方式方式 //第一种方式:构造函数,代码少 Intent intent1 =new Intent(this,NewA

随机推荐