1

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

Во-первых, я попытался настроить интерфейс, как и здесь, здесь предлагается How to pass data between fragments , который не работает для меня. Идея заключается в том, что фрагмент в говорит основной вид деятельности, а затем Основная деятельность говорит Фрагмент Б.

Так что я искал разные ответы

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

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

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

Я не нахожу это в LogCat:

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

Communication between Fragments in ViewPager

Communication between SlidingTabLayout tabs

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

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

Редактировать: Я получил его, работая, опасаясь и переписывая код.

+0

Использование 'EventBus' кажется как излишним для этого. Если вы еще не отказались от «интерфейса», здесь очень простое и очень подробное объяснение и пример на ** Inter-Fragment Communication ** на YouTube https://www.youtube.com/watch?v=GDHnIZEJ76I , Надеюсь, это поможет. –

+0

Спасибо за предложение Элвиса, но мне удалось получить EventBus, отлично работающий – Abe

ответ

2

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

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

+0

@Подписка не нужна. Я просто переписал свой код, будучи очень осторожным, и я получил его работу. С одним из моих файлов макета была непроницаемая проблема. Спасибо .. – Abe

+0

@ Может ли какая-нибудь идея, какова была скрытая проблема? Я могу сейчас это переживать. – COBB