使用 Otto 将数据从 Activity 传递到 Fragment

2024-01-09

在我的应用程序中,我将片段动态添加到主活动视图中的容器中。我想知道当我们添加 Fragment 时使用 Otto 时传递数据的最佳方式是什么。目前这就是我正在做的事情,请举例说明我没有发布我的 CustomObject

在我的主要活动中

    getSupportFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, MY_CUSTOM_FRAGMENT).commit();
    BusProvider.getInstance().post(produceCustomString());

在我的片段里面

    @Subscribe
    public void onCustomStringChanged(String customString) {
    } 

方法注释为@Subscribe如果您还有一个,则会自动调用@Produce注册相同类型的方法。

通知此类新数据片段的最佳方法是您有一个@Produce活动方法:

@Produce public String produceCustomString() {
  return "Hello, World!";
}

然后你所有的片段都有@Subscribe方法:

@Subscribe public void onCustomStringEvent(String event) {
  // ...
}

当您注册具有此方法的片段时,Otto 将调用@Produce活动上的方法来获取最新值,并将其传递给片段的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Otto 将数据从 Activity 传递到 Fragment 的相关文章

随机推荐