Android EventBus(普通事件/粘性事件)详解
程序员文章站
2023-11-29 17:17:10
本文实例为大家分享了android eventbus普通事件和粘性事件,供大家参考,具体内容如下
展示效果
添加eventbus导入依赖
compi...
本文实例为大家分享了android eventbus普通事件和粘性事件,供大家参考,具体内容如下
展示效果
添加eventbus导入依赖
compile 'org.greenrobot:eventbus:3.0.0'
主mainactivity方法
public class mainactivity extends appcompatactivity { private button button_t,button_d; private textview tv_a; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button_d=(button)findviewbyid(r.id.button_d); button_d.settext("订阅"); button_t=(button)findviewbyid(r.id.button_t); button_t.settext("跳转到bctivity"); tv_a=(textview)findviewbyid(r.id.tv_a); tv_a.settext("欢迎大家观看飞鸟96的博客"); button_t.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { startactivity(new intent(mainactivity.this,mainbctivity.class)); } }); /* * 订阅事件 * */ button_d.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { if(!eventbus.getdefault().isregistered(mainactivity.this)) { eventbus.getdefault().register(mainactivity.this); }else{ toast.maketext(mainactivity.this, "请勿重复注册事件", toast.length_short).show(); } } }); } @override protected void ondestroy() { super.ondestroy(); /* * 取消注册事件 * */ eventbus.getdefault().unregister(mainactivity.this); } @subscribe(threadmode = threadmode.main) public void onmoonevent(messageevent message){ tv_a.settext(message.getmessage()); } @subscribe(sticky = true) public void onmoonevents(messageevent message){ tv_a.settext(message.getmessage()); } }
主mainbctivity方法
public class mainbctivity extends appcompatactivity { private button button_f,button_n; private textview tv_b; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main_bctivity); button_f=(button)findviewbyid(r.id.button_f); button_f.settext("发送事件"); button_n=(button)findviewbyid(r.id.button_n); button_n.settext("粘性事件"); tv_b=(textview)findviewbyid(r.id.tv_b); tv_b.settext("mainbctivity"); /*发送事件*/ button_f.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { eventbus.getdefault().post(new messageevent("飞鸟96博客祝你用的开心!")); finish(); } }); /*粘性事件*/ button_n.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { eventbus.getdefault().poststicky(new messageevent("开心开心开开心!!")); finish(); } }); } }
messageevent(事件类)
public class messageevent { private string message; public messageevent(string message) { this.message = message; } public messageevent() { } public string getmessage() { return message; } public void setmessage(string message) { this.message = message; } }
activity_main(mainactivity的布局)
<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello world!" android:layout_centerinparent="true" android:id="@+id/tv_a" /> <button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="17dp" android:id="@+id/button_t" android:layout_below="@id/tv_a" /> <button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="17dp" android:id="@+id/button_d" android:layout_below="@id/button_t" />
activity_main_bctivity(mainbctivity的布局)
<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello world!" android:layout_centerinparent="true" android:id="@+id/tv_b" /> <button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="17dp" android:id="@+id/button_f" android:layout_below="@id/tv_b" /> <button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="17dp" android:id="@+id/button_n" android:layout_below="@id/button_f" />
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。