在我的Android应用程序中,我有两个片段。父片段包含可用过滤器类型的列表,当单击特定过滤器类型时(在父片段-黄色背景中),相应的子片段(粉红色背景)随即打开,其中包含所选过滤器类型的可用选项列表。我的要求是,一旦用户在子片段中选择/取消选择一个选项,它就应该在父片段中反映/更新选项计数(绿色)。
请检查连接的线框。
最佳答案
您可以使用Otto Bus进行片段,片段活动,服务等之间的通信。
也许,如果您以前从未使用过,那么第一次可能会有些奇怪,但是它功能强大且易于使用。您可以在此处找到该库和教程:
http://square.github.io/otto/
一个例子。在您的适配器中或您有项目单击事件的地方,可以通过总线发送对象。
在您的总线中,调用post方法并传递对象。 (我建议为Bus创建一个单例)。
单例总线提供程序。
/**
* Canal de comunicacion
*/
public class BusProvider {
private static final Bus REST_BUS = new Bus(ThreadEnforcer.ANY);
private static final Bus UI_BUS = new Bus();
private BusProvider() {};
public static Bus getRestBusInstance() {
return REST_BUS;
}
public static Bus getUIBusInstance () {
return UI_BUS;
}
}
您可以在总线中(在您的子片段中)发送一个对象,如下所示:
BusProvider.getUIBusInstance().post(itemSelected);
在您的父片段中,您预订此事件:
@Subscribe
public void activitySelected(final Item itemSelected) {
}
希望对您有帮助!!