第一步:在build.gradle中添加依赖
dependencies {
compile 'org.greenrobot:eventbus:3.0.0'
}
第二部创建一个javaBean,就是要保存你将要传递的内容,比如下面
public class FirstEvent { private final String img; private final String name;//这里的属性自定义,根据自己传的值内容来定 public FirstEvent(String img, String mame) { this.img = img; this.name = mame; }
// 生成get方法,一会可以得到内容
public String getImg() {
return img;
}
public String getName() {
return name;
}
}
第三步就是在你要接受内容的Fragment或Activity中注册(在哪里接收,在哪里注册)
Fragment注册
在onCreateView(),onCreate(),onActivityCreated(),中注册都可以,比如在Fragment的onCreate()注册
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //注册EventBus EventBus.getDefault().register(this); }
Activity在onCreate()方法中注册,
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //注册EventBus EventBus.getDefault().register(this);
}
然后在接受的Fragment或Activity添加这个方法,用来接受传过来的值
@Subscribe //这个必须存在,不然程序会蹦 public void onEventMainThread(FirstEvent event) {
event.getImg();
event.getName();就可以拿到你传过来的值,然后执行后续操作
}
接下来就是在接收内容的Fragment或Activity中注销
@Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this);//反注册EventBus }
下来就是发送消息
EventBus.getDefault().post(new FirstEvent(img, name));//内容根据自己创建的javaBean来决定