在我的 Android 应用程序中,我有两个 fragment 。父 fragment 包含可用过滤器类型的列表,当单击特定过滤器类型时(在父 fragment - 黄色背景中),相应的子 fragment (粉红色背景)将打开,其中包含所选过滤器类型的可用选项列表。我的要求是一旦用户选择/取消选择子 fragment 中的选项,它应该反射(reflect)/更新父 fragment 中的选项计数(绿色)。
请检查随附的线框。
最佳答案
您可以使用 Otto Bus 在 Fragments、fragments-activities、服务等之间进行通信。
也许,如果您之前没有使用过,第一次您可能会有点奇怪,但它非常强大且非常易于使用。您可以在这里找到该库和教程:
举个例子。在您的适配器中或您有项目点击事件的地方,您可以通过总线发送对象。
在总线中,您调用 post 方法并传递对象。 (我建议为总线创建一个单例)。
单例总线提供商。
/**
* 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;
}
}
您在总线中(在您的子 fragment 中)发送一个对象,如下所示:
BusProvider.getUIBusInstance().post(itemSelected);
并在您的父 fragment 中订阅此事件:
@Subscribe
public void activitySelected(final Item itemSelected) {
}
希望对你有帮助!!
关于android - 从子 fragment 更新父 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834349/