在我的应用程序中,我将动态地向主活动视图中的容器添加片段。我想知道在添加片段时,使用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
方法,以获取它将传递给片段方法的最新值。