Search code examples
event-bus

Fragment-Activity Communication with Event Bus


I am trying to use EventBus to send text from my tabLayout to Fragment but for some unknown reason, the event is not been fired up. I get this error on my stack trace. I do not understand why the subscriber is not being registered.

D/EventBus: No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent

Fragment.java

 @Override
    public void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);
    }

    @Override
    public void onStop() {
        super.onStop();
        EventBus.getDefault().unregister(this);
    }
    @Subscribe
    public void receivedQueryMessage(BusMessage message){
        Log.d("MYLOG", "message");

    }

MainActivity.java

 tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
                if (tab.getText() != null) {
                    EventBus.getDefault().post(tab.getText());
                }
            }

BusMessage.java

public class BusMessage {
    private String message;

    public BusMessage(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

Solution

  • EventBus.getDefault().post(new BusMessage(tab.getText()));