First Time I'm trying to implement EventBus to communicate two fragments of MyActivity (to change button.setEnabled) my SDK 21
this is my POJO event
public class ButtonEvent {
public final boolean status;
public ButtonEvent(boolean status){
this.status=status;
}
}
this is the fragment that fires the event...
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));
}
here is the fragmentB which receives (listen) the event...
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");
}
this is my output but the app doesn't stop, but doesn't make any change on my fragmentB button:
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
my eventbus version:
compile 'org.greenrobot:eventbus:3.0.0'
there are similar questions but some of them haven't got the right answer and the other are different situations Activity-fragment are not the same implementation than fragment to fragment.
Is my code right? I am missing something? Why it is not working and how can I solve the problem? thanks in advance...
Here is a sample..
Fragment B: