【问题标题】:EventBus OnEvent() is not getting calledEventBus OnEvent() 没有被调用
【发布时间】:2016-02-16 09:42:40
【问题描述】:

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

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

【问题讨论】:

  • @sasikumar 没有错误。无法 setText() 到我的 Textviews
  • event.getBoreData() 获取值?
  • @sasikumar 无法检查 event.getBoreData() 因为 OnEvent 没有调用。我可以看到 bus.post(bsValues);发帖时有值
  • 巴士?是上课吗?代码在哪里
  • @sasikumar 将 EventBus.jar 包含到我的构建路径中并用作私有 EventBus bus = EventBus.getDefault();

标签: android android-fragments event-bus greenrobot-eventbus


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多