欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现Activity之间通信的方法

程序员文章站 2023-08-12 16:01:52
本文实例讲述了android实现activity之间通信的方法。分享给大家供大家参考。具体如下: 在一个activity中可以使用系统提供的startactivity(i...

本文实例讲述了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程序设计有所帮助。