Связь фрагмента с активностью с помощью шины событий - PullRequest
1 голос
/ 01 мая 2019

Я пытаюсь использовать EventBus для отправки текста с моего tabLayout на Fragment, но по неизвестной причине событие не было запущено.Я получаю эту ошибку на трассировке стека.Я не понимаю, почему подписчик не регистрируется.

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;
    }
}

1 Ответ

1 голос
/ 01 мая 2019
EventBus.getDefault().post(new BusMessage(tab.getText()));
...