Android-EventBus3.0的使用简单使用记录
来源:互联网 发布:普林数据 编辑:程序博客网 时间:2024/05/21 17:49
一、添加库
二、创建一个消息封装
public class MyMessage{ private String msg; public MyMessage() { } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; }}三、创建一个消息接收器
public class Econtrl{ private TextView view; public Econtrl(TextView view) { this.view = view; EventBus.getDefault().register(this);//订阅 } @Subscribe(threadMode = ThreadMode.MAIN) public void setViewMsg(MyMessage msg) { view.setText(view.getText()+"\n"+msg.getMsg()); }}四、创建布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="tusirui.androideventbus.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:background="#acacac" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="2dp" android:background="#ffffff" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="30dp" android:gravity="center_vertical" android:text="消息接受1:"/> <TextView android:id="@+id/mesg1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="2dp" android:background="#ffffff" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="30dp" android:gravity="center_vertical" android:text="消息接受2:"/> <TextView android:id="@+id/mesg2" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout> </LinearLayout> <Button android:id="@+id/msg_send" android:layout_width="match_parent" android:layout_height="40dp" android:layout_marginTop="5dp" android:text="发送"/></LinearLayout>布局效果:
五、编辑主逻辑
package tusirui.androideventbus;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import org.greenrobot.eventbus.EventBus;import org.greenrobot.eventbus.Subscribe;import org.greenrobot.eventbus.ThreadMode;import tusirui.androideventbus.Eb.Econtrl;import tusirui.androideventbus.Eb.MyMessage;public class MainActivity extends AppCompatActivity implements View.OnClickListener{ /** * 消息接受1: */ private TextView mMesg1; /** * 消息接受1: */ private TextView mMesg2; /** * 发送 */ private Button mMsgSend; private int counter = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EventBus.getDefault().register(this);//订阅 initView(); } @Override protected void onDestroy() { EventBus.getDefault().unregister(this);//解除订阅 super.onDestroy(); } private void initView() { mMesg1 = (TextView) findViewById(R.id.mesg1); mMesg2 = (TextView) findViewById(R.id.mesg2); mMsgSend = (Button) findViewById(R.id.msg_send); mMsgSend.setOnClickListener(this); Econtrl econtrl = new Econtrl(mMesg2); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.msg_send: new Thread(new Runnable() { @Override public void run() { MyMessage myMessage = new MyMessage(); myMessage.setMsg("发送:" + (counter++)); EventBus.getDefault().post(myMessage); } }).start(); break; } } @Subscribe(threadMode = ThreadMode.ASYNC) public void onEventBusMsg(MyMessage msg) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } EventBus.getDefault().post("消息线程转发:" + msg.getMsg()); } @Subscribe(threadMode = ThreadMode.MAIN) public void copyMsg(String string) {//说明消息不一定需要封装,它是支持常用数据类型的。 mMesg1.setText(mMesg1.getText() + "\n" + string); }}最终效果:
阅读全文
0 0
- Android-EventBus3.0的使用简单使用记录
- EventBus3.0的简单使用
- Eventbus3.0的简单使用
- EventBus3.0的简单使用
- EventBus3.0的简单使用
- EventBus3的简单使用
- EventBus3.0简单使用
- Eventbus3.0简单使用
- android事件总线EventBus3.0简单使用
- Android线程间通信--- eventbus3.0的简单使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- 5.偏头痛杨的常见设计模式入门系列之观察者模式篇
- 不同系统之间的文件传输
- unity数据持久化-如何保存多个帐号密码并切换任意用户实现登陆
- 怎样查看Jsp编译后生成的Java文件
- linux流量监控工具-iftop
- Android-EventBus3.0的使用简单使用记录
- Ubuntu安装Python3
- Eclipse+Android解决SDK下无doc文件夹问题 以及关联Android帮助文档
- Linux常用命令大全(非常全!!!)
- 大牛
- 名片扫描拍照识别的技术sdk
- LaTex基本语法
- banner 还有很多 进来看看
- 常用正则表达式65例