gpt4 book ai didi

Android,为什么一个 Fragment 不能直接调用另一个?

转载 作者:行者123 更新时间:2023-11-29 17:53:57 26 4
gpt4 key购买 nike

根据 Android 指南,http://developer.android.com/training/basics/fragments/communicating.html一个 fragment 应通过托管 Activity 将数据发送到另一个 fragment 。我想知道这是有原因的。因为在我的代码中,我放置了一个变量来保存指向另一个 fragment 的指针,并将其分配给 onActivityCreated

//this code is in class FragmentType1, assign the pointer to the FragmentType2 for later use
@Override
public void onActivityCreated(final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final FragmentManager fm = getFragmentManager();

mOtherFragment = (FragmentType2) fm
.findFragmentById(R.id.container_fragment);
}

以后如果我想为 FragmentType2 设置数据,我只需调用:

public setData(MyData data){
if (mOtherFragment!=null)
mOtherFragment.setData(data);
}

现在一切正常。这种方法有什么问题?谢谢。

最佳答案

至少有两个原因:

  • 促进 fragment 的解耦。
  • 避免将对一个 fragment 的引用存储在另一个 fragment 中可能发生的内存泄漏。

关于Android,为什么一个 Fragment 不能直接调用另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876726/

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