第一步:导入依赖
implementation 'org.greenrobot:eventbus:3.1.1'
第二部:在你发送的Activity/Fragment中发送事件
1.发送Bean类
CeshiBean ceshiBean = new CeshiBean();
EventBus.getDefault().postSticky(ceshiBean);
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent);
2.发送集合
Gson gson = new Gson();
CeShiBean jsonBean = gson.fromJson(string1, CeShiBean.class);
List<CeShiBean.DataBean.ForecastBean> forecast = jsonBean.getData().getForecast();
//这里发送的是一个Bean类
EventBus.getDefault().postSticky(forecast);
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent);
第三步:在你接收的Activity/Fragemnt中注册与反注册
在onCreat中注册
EventBus.getDefault().register(this);
在OnDestory中反注册
EventBus.getDefault().unregister(this);
第四步:在你接收的Activity/Fragemnt中接收事件
1.接收Bean
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void onMessageEvent(CeshiBean event) {
Log.d("MainActivity", "我被接受过来了==" + event.name + event.password);*/
Log.d("MainActivity", "event.getCityInfo():" + event.getCityInfo());
EventBus.getDefault().removeStickyEvent(event);
//最后要remove掉
}
2.接收集合
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void onMessageEvent(List<CeShiBean.DataBean.ForecastBean> forecast) {
Log.d("MainActivity", "event.getCityInfo():" + forecast.get(0).getWeek());
tv_show.setText(forecast.get(0).getWeek());
EventBus.getDefault().removeStickyEvent(forecast);
//最后要remove掉
}