自定义事件(类似定义JavaBean),包含用户的姓名和密码;
public class UserEvent {
private String name;
private String password;
public UserEvent() {
}
public UserEvent(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "UserEvent{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
在onCreate方法中注册订阅者,在onDestroy中解注册。
public class MainActivity extends AppCompatActivity {
@BindView(R.id.jump)
Button mJump;
@BindView(R.id.send)
Button mSend;
@BindView(R.id.tv_result)
TextView mTvResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
//注册订阅者
EventBus.getDefault().register(this);
}
@OnClick({R.id.jump, R.id.send})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.jump:
startActivity(new Intent(MainActivity.this, SecActivity.class));
break;
case R.id.send:
break;
}
}
//定义处理接收的方法
@Subscribe(threadMode = ThreadMode.MAIN)
public void userEventBus(UserEvent userEvent){
mTvResult.setText(userEvent.toString());
}
@Override
protected void onDestroy() {
super.onDestroy();
//注销注册
EventBus.getDefault().unregister(this);
}
}
在另一个activity中发送事件,让订阅者能够接收;
@OnClick({R.id.sendData, R.id.receive})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.sendData:
//发送事件
EventBus.getDefault().post(new UserEvent("Mr.sorrow", "123456"));
finish();
break;
case R.id.receive:
break;
}
}
实现结果: