简单的传值
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); } }