gpt4 book ai didi

Android 嵌套 fragment - fragment 交互

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:59:22 25 4
gpt4 key购买 nike

fragment 间交互的 Android 最佳实践(描述 herehere )强制 Activity 实现由子 fragment 定义的监听器。 Activity 然后管理 fragment 之间的通信。

根据我的理解,这是为了让 fragment 之间保持松散耦合。然而,

  1. 嵌套 fragment 也是这种情况吗?我可以想象嵌套 fragment 直接向其父 fragment 而不是 Activity 报告可能是有意义的。

  2. 如果嵌套 fragment 有其父 fragment 实现它的监听器,那么一个(或应该)如何要求父 fragment 执行此操作。换句话说,它类似于以下范例,但适用于 Fragments:

    @Override
    public void onAttach(Activity activity) {
    super.onAttach(activity);

    try {
    mCallback = (OnHeadlineSelectedListener) activity;
    } catch (ClassCastException e) {
    throw new ClassCastException(activity.toString()
    + " must implement OnHeadlineSelectedListener");
    }
    }

最佳答案

如果有人想要一个确保父上下文实现回调而不关心它是 Activity 还是 fragment 的实现示例,以下对我有用:

@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof Callbacks) {
mCallbacks = (Callbacks) context;
} else {
if (getParentFragment() != null && getParentFragment() instanceof Callbacks) {
mCallbacks = (Callbacks) getParentFragment();
} else {
throw new RuntimeException(context.toString()
+ " must implement " + TAG + ".Callbacks");
}
}
}

@Override
public void onDetach() {
super.onDetach();
mCallbacks = null;
}

尽情享受吧!

关于Android 嵌套 fragment - fragment 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com