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

使用Broadcast实现Android组件间的通信

程序员文章站 2024-03-31 18:07:10
android组件之间的通信有多种实现方式,broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activi...

android组件之间的通信有多种实现方式,broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例。
效果如图:

使用Broadcast实现Android组件间的通信

布局文件:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >

  <textview
    android:id="@+id/textview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

  <button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignleft="@+id/textview1"
    android:layout_marginleft="27dp"
    android:layout_margintop="26dp"
    android:text="发送广播" />

</linearlayout>

mainactivity.java

public class mainactivity extends activity {

  private button btn;
  private textview tv;

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    tv = (textview) this.findviewbyid(r.id.textview1);

    //接收广播
    localbroadcastmanager broadcastmanager = localbroadcastmanager
        .getinstance(mainactivity.this);
    intentfilter intentfilter = new intentfilter();
    intentfilter.addaction("com.example.test1");
    broadcastreceiver mitemviewlistclickreceiver = new broadcastreceiver() {
      @override
      public void onreceive(context context, intent intent) {
        tv.settext("1111");
      }
    };
    broadcastmanager.registerreceiver(mitemviewlistclickreceiver,
        intentfilter);

    btn = (button) this.findviewbyid(r.id.button1);
    btn.setonclicklistener(new onclicklistener() {

      @override
      public void onclick(view v) {

        //发送广播
        intent intent = new intent("com.example.test1");
        localbroadcastmanager.getinstance(mainactivity.this)
            .sendbroadcast(intent);
      }
    });
  }
}

原文链接:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。