EventBus

简单的传值

1.依赖

compile 'org.greenrobot:eventbus:3.1.1'

2.创建一个容器

3.在接受值的Activity或Fragment中

注册

EventBus.getDefault().register(this);

接收值

@Subscribe(threadMode = ThreadMode.MAIN)
public void EventBusMessage(MsgBean msg) {
    mainTxt.setText(msg.getName());
}

注销

@Override
protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
}
在发送值的Activity或Fragment中
MsgBean bean=new MsgBean("哈哈哈");
EventBus.getDefault().post(bean);
粘性事件
在发送值的Activity或Fragment中
EventBusMessage message = new EventBusMessage("小偷别跑,站住...");
                EventBus.getDefault().postSticky(message);
在接受值的Activity或Fragment中


  
  
public class Main2Activity extends AppCompatActivity implements View.OnClickListener {
private Button my_btnm2; private TextView my_textview; private boolean isclick=true;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initView(); }
private void initView() { my_btnm2 = (Button) findViewById(R.id.my_btnm2); my_textview = (TextView) findViewById(R.id.my_textview); my_btnm2.setOnClickListener(this); }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.my_btnm2: if (isclick){ EventBus.getDefault().register(this); isclick=false; } break; }
}
@Subscribe(threadMode = ThreadMode.MAIN,sticky = true) public void EventBusMesg(EventBusMessage message){ my_textview.setText(message.getName());
}
@Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().removeAllStickyEvents(); EventBus.getDefault().unregister(this); } }

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值