android - 从子 fragment 更新父 fragment

标签 android android-layout android-fragments

在我的 Android 应用程序中,我有两个 fragment 。父 fragment 包含可用过滤器类型的列表,当单击特定过滤器类型时(在父 fragment - 黄色背景中),相应的子 fragment (粉红色背景)将打开,其中包含所选过滤器类型的可用选项列表。我的要求是一旦用户选择/取消选择子 fragment 中的选项,它应该反射(reflect)/更新父 fragment 中的选项计数(绿色)。

请检查随附的线框。

enter image description here

最佳答案

您可以使用 Otto Bus 在 Fragments、fragments-activities、服务等之间进行通信。

也许,如果您之前没有使用过,第一次您可能会有点奇怪,但它非常强大且非常易于使用。您可以在这里找到该库和教程:

http://square.github.io/otto/

举个例子。在您的适配器中或您有项目点击事件的地方,您可以通过总线发送对象。

在总线中,您调用 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/

相关文章:

android - 无法选择多张图片上传到 Android - Chrome 网络浏览器

android - 如何设置 android 偏好摘要文本颜色?

android - 使用 PhoneGap 时将标题添加回 Android 窗口

android - 将模型对象传递给另一个 Activity

Android View Pager Adapter显示空白屏幕

android - FragmentPagerAdapter 的问题

android - 如何从sqlite3加载html文件?

Android soundPool 支持扩展吗?

Android xml 布局和添加用 xml 编写的自定义 View

android - 改变方向时 fragment 消失