gpt4 book ai didi

android - getTargetFragment 返回 Null

转载 作者:行者123 更新时间:2023-11-29 15:06:32 25 4
gpt4 key购买 nike

我的应用程序中有父 fragment 和对话框 fragment 。单击一个按钮,父 fragment 将打开对话框 fragment 。这是我的 ParentFragment 类。

public class ParentFragment extends Fragment {
........
........
public class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
MyDialogFragment newFragment = new MyDialogFragment();
newFragment.setTargetFragment(ParentFragment.this, 0);
newFragment.show(getFragmentManager(), "dialog");
}
}

}

这是 MyDialogFragment 类

public class MyDialogFragment extends DialogFragment {
..........
public MyDialogFragment() {
parentFragment = (ParentFragment)getTargetFragment();

}
...........
...........
}

当 MyDialogFragment 类中的 getTargetFragment 总是返回 null。

最佳答案

检查你的命令序列

MyDialogFragment newFragment = new MyDialogFragment(); // line 1
newFragment.setTargetFragment(ParentFragment.this, 0); // line 2

在这里,您首先要创建一个新的 MyDialogFragment 对象。请记住,此命令(第 1 行)将调用 MyDialogFragment 的构造函数。在此之后,您将设置目标 fragment (第 2 行)。

如果您查看 dialogFragment,

public MyDialogFragment() {
parentFragment = (ParentFragment)getTargetFragment();
}

您正在尝试访问构造函数中的目标 fragment 。因此目标 fragment 将始终为空,因为您是在第 2 行中调用构造函数后对其进行赋值。尝试从其他方法访问它或将其作为参数传递给构造函数(这不是一个好的做法)。

关于android - getTargetFragment 返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36738499/

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