hari86
hari86

Reputation: 669

EventBus OnEvent() is not getting called

Hi Iam using Event bus to pass data from one fragment to another Fragment

From fragment-1 I am doing as below

@Override
public void onPause() {
    bsValues = new BoreShaftValues(strtext, strtextshaft);
    bus.post(bsValues);
    super.onPause();
}

In Fragment-2 I registered bus in OnActivitycreated

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    bus.register(this);
}

Then I placed OnEvent() method in fragment-2

public void onEvent(BoreShaftValues event){
    boregradeselect.setText(event.getBoreData());
    shaftgradeselect.setText(event.getShaftData());
}

Below is my BoreshaftVales class

public class BoreShaftValues {
    private String boredata;
    private String shaftdata;

    public BoreShaftValues(String boredata, String shaftdata){          
        this.boredata = boredata;
        this.shaftdata = shaftdata;
    }

    public String getBoreData(){
        return boredata;
    }
    public String getShaftData(){
        return shaftdata;
    }
}

But this OnEvent() method is not getting called at all. Am i doing it the rightway?

Upvotes: 2

Views: 2210

Answers (1)

Peter Birdsall
Peter Birdsall

Reputation: 3425

I typically try to tie EventBus back to the Activity and yet enable it to be loosely coupled. So in the Fragment lifecycle I register EventBus in the onAttach and unregister it in the onDetach methods in the fragment.

Upvotes: 1

Related Questions