Впервые я пытаюсь внедрить EventBus для обмена двумя фрагментами MyActivity (чтобы изменить button.setEnabled) моего SDK 21
это мое событие POJO
public class ButtonEvent {
public final boolean status;
public ButtonEvent(boolean status){
this.status=status;
}
}
это фрагмент, который запускает событие...
Fragment A
...//some code
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_a, container, false);
...//more code inside onCreateView
btnChange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//HERE I POST THE EVENT
EventBus.getDefault().post(new ButtonEvent(true));
}
вот фрагментB, который получает (прослушивает) событие...
FragmentB extends Fragment{
...//some code
@Override
// in method onCreate I register the subscriber
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!EventBus.getDefault().hasSubscriberForEvent(ButtonEvent.class)) {
EventBus.getDefault().register(this);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_b, container, false);
//...some other code
}
//HERE IS MI SUBSCRIBER
@Subscribe
public void onEvent(ButtonEvent event){
btnNuevoMed.setEnabled(event.status);
btnNuevoMed.setText("hELLOOO");
}
это мой вывод, но приложение не останавливается, но не вносит никаких изменений в мою кнопку фрагментаB:
D/EventBus: No subscribers registered for event class ar.com.titaves.consultoriosapp.servicios.ButtonEvent
D/EventBus: No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent
моя версия шины событий:
compile 'org.greenrobot:eventbus:3.0.0'
есть похожие вопросы, но на некоторые из них нет правильного ответа, а другие - разные ситуации. Фрагмент активности - это не та же реализация, что и фрагмент для кадра.
Мой код правильный? Я что-то упускаю? Почему это не работает и как я могу Решить проблему? заранее спасибо...