使用Broadcast实现Android组件间的通信
程序员文章站
2024-03-31 18:07:10
android组件之间的通信有多种实现方式,broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activi...
android组件之间的通信有多种实现方式,broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例。
效果如图:
布局文件:
<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); } }); } }
原文链接:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读