EventBus не работает при попытке связи между двумя фрагментами

У меня есть три фрагмента в пейджере, настроенном как макет скользящей вкладки. Мне нужно передать строковое значение из одного фрагмента в другой.

Во-первых, я попытался настроить интерфейс, как ответы здесь предлагают Как передавать данные между фрагментами что не сработало для меня. Идея состоит в том, что фрагмент A сообщает основному действию, а затем основное действие сообщает фрагменту B.

Поэтому я искал разные ответы

http://android-er.blogspot.com/2012/06/communication-between-fragments-in.html

Выглядело многообещающе, но не работало, потому что я не мог использовать те же функции с моим кодом, так как я настроил свой просмотрщик со скользящим табличным макетом Google вместо старой панели действий.

Теперь я наткнулся на EventBus. И я действительно думаю, что это мой ответ. Я добавил его в свой код так же, как предлагают оба приведенных ниже ответа. Ничего не вылетает, но и ничего не работает.

Я нахожу это в logcat:

D/Event: Нет подписчиков, зарегистрированных для класса событий tk.abestudying.atob.TextChangedEvent D/Event: Нет подписчиков, зарегистрированных для класса событий de.greenrobot.event.NoSubscriberEvent

Связь между фрагментами в ViewPager

Связь между вкладками SlidingTabLayout

Вот мой код: Ссылка удалена

Пожалуйста помоги. Я пробовал решения в течение нескольких часов, но я в тупике. Спасибо.

Редактировать: я заработал, будучи осторожным и переписывая код.


comment
Использование EventBus кажется излишним для этого. Если вы еще не отказались от Interfaces, вот очень простое и очень подробное объяснение и пример Inter-Fragment Communication на YouTube youtube.com/watch?v=GDHnIZEJ76I. Надеюсь, это поможет.   -  person Elvis Chweya    schedule 21.02.2016
comment
Спасибо за предложение, Элвис, но мне удалось заставить EventBus работать отлично.   -  person Abe    schedule 21.02.2016


Ответы (1)


Похоже, вы пропустили аннотацию @Subscribe. Согласно README, метод подписки должен выглядеть следующим образом:

@Subscribe public void onEvent(AnyEventType event) {/* Do something */};

person Michiyo    schedule 20.02.2016
comment
@Subscribe не нужен. Я просто переписал свой код, будучи очень осторожным, и у меня все заработало. Была скрытая проблема с одним из моих файлов макета. Спасибо.. - person Abe; 21.02.2016
comment
@Abe Есть идеи, в чем была скрытая проблема? Возможно, я испытываю это сейчас. - person Brett; 23.08.2016