繁体   English   中英

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

[英]Passing data from Activity to Fragment using Otto

在我的应用程序中,我正在动态地将Fragments添加到主活动视图中的容器中。 我想知道在添加Fragment时使用Otto时传递数据的最佳方法是什么。 目前我正在这样做,请在示例中我不发布我的CustomObject

在我的主要活动中

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

在我的片段里面

    @Subscribe
    public void onCustomStringChanged(String customString) {
    } 

如果您对已注册的相同类型也有@Produce方法,则会自动调用使用@Subscribe注释的方法。

告知新数据碎片的最佳方法是在活动中使用@Produce方法:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM