gpt4 book ai didi

java - 在创建扩展父 fragment 的子 fragment 时调用 newInstance()

转载 作者:行者123 更新时间:2023-11-30 01:21:56 24 4
gpt4 key购买 nike

我有一个名为 TheParent 的父 DialogFragment 和一个扩展 TheParent 的名为 TheChild 的子 fragment 。

但是,即使我正在实例化 TheChild,我也需要能够初始化 TheParent 中的一些变量,所以我尝试的是:

在父级

public static TheParent newInstance(int myInt) {
Bundle args = new Bundle();
TheParent fragment = new TheParent();
args.putInt(ARGUMENT_MYINT, myInt);
fragment.setArguments(args);
return fragment;
}

然后在 child 身上:

public static TheChild newInstance(int myInt) {
return super.newInstance(myInt);
}

但是由于静态上下文,它不喜欢我这样做。

在 TheChild 上调用 newInstance() 并让它调用父级的 newInstance() 的正确方法是什么?

最佳答案

静态方法,如 TheParent 中的新实例,是“类”方法。因此,您不应调用 super.newInstance,而应调用 TheParent.newInstance (...)。请记住调用静态方法的方法是使用类名。希望能帮助到你。综上所述,TheChild 中的 newInstance 方法有一个类型为“TheChild”的返回值。这意味着返回“TheParent”实例是不可能的,它会导致编译时错误,一旦您更改 TheChild 中的代码,您就会看到该错误:“返回 super.newInstance()”到“TheParent.newInstance()”。

关于java - 在创建扩展父 fragment 的子 fragment 时调用 newInstance(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960812/

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