嗨Iam使用事件总线将数据从一个片段传递到另一个片段

从fragment-1我正在做如下


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


在Fragment-2中,我在OnActivitycreated中注册了总线

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


然后我将OnEvent()方法放在fragment-2中

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


以下是我的BoreshaftVales

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;
    }
}


但是,此OnEvent()方法根本没有被调用。我在正确地做吗?

最佳答案

我通常会尝试将EventBus绑定到Activity,但仍使其能够松散耦合。因此,在片段生命周期中,我在onAttach中注册了EventBus,然后在片段中的onDetach方法中注销了它。

关于android - 未调用EventBus OnEvent(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35428887/

10-09 06:58