2

嗨,我正在使用事件总线将数据从一个片段传递到另一个片段

从片段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()方法放在片段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()方法根本没有被调用。我做对了吗?

4

1 回答 1

1

我通常会尝试将 EventBus 绑定回 Activity 并使其松散耦合。所以在 Fragment 生命周期中,我在 onAttach 中注册 EventBus 并在 Fragment 的 onDetach 方法中取消注册它。

于 2016-03-08T08:00:59.680 回答