第一步进行添加依赖
compile 'org.greenrobot:eventbus:3.0.0'
第二步定义消息事件类
//这里就相当于bean类 下面会调用里面的方法
package com.example.eventbus;
/** * Created by Administrator on 2018/4/11. */
public class MessageEvent {
String message;
public MessageEvent(String message){
this.message=message;
}
public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}
第三步注册和解除注册
package com.example.eventbus;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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;
public class MainActivity extends AppCompatActivity {
private Button mButton;
private TextView mText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.btn1);
mText = (TextView) findViewById(R.id.tv1);
mText.setText("今天星期三");
//注册事件
EventBus.getDefault().register(this);
jumpActivity();
}
private void jumpActivity() {
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转 Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
//这里是调用Bean类 并且接受回调回来的数据
@Subscribe(threadMode = ThreadMode.MAIN)
public void Event(MessageEvent messageEvent) {
mText.setText(messageEvent.getMessage());
}
//解除注册
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}
第四步事件处理
package com.example.eventbus;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import org.greenrobot.eventbus.EventBus;
public class SecondActivity extends AppCompatActivity {
private Button mButton2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mButton2=(Button) findViewById(R.id.btn2);
jumpActivity();
}
private void jumpActivity() {
//点击事件 发送事件
mButton2.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
EventBus.getDefault().post(new MessageEvent("欢迎大家浏览我写的博客"));
finish();
}
});
}}



本文详细介绍EventBus库的应用,包括依赖添加、消息事件类定义、事件注册与解除注册过程及事件处理方式。通过两个Activity间的交互实例,展示了如何利用EventBus进行跨组件通信。

1296

被折叠的 条评论
为什么被折叠?



