gpt4 book ai didi

java - Java 新手 - 在创建 fragment 时了解 newInstance()

转载 作者:搜寻专家 更新时间:2023-11-01 08:53:39 25 4
gpt4 key购买 nike

在创建一个新的 fragment 时,这个类的构造函数有这个 newInstance 我不知道它做了什么,也许你能给我解释一下它在做什么?

public class DetailsFragment extends Fragment {
private int mIndex = 0;

public static DetailsFragment newInstance(int index) {

DetailsFragment df = new DetailsFragment();
// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt("index", index);
df.setArguments(args);
return df;
}

public static DetailsFragment newInstance(Bundle bundle) {
int index = bundle.getInt("index", 0);
return newInstance(index);
}

根据我对 Java 的有限了解,我认为它正在创建此类的新对象。但如果是这样,那为什么不直接在 main 中编写 DetailsFragment df = new DetailsFragment() 呢?看起来它正在做某事。

最佳答案

newInstance 函数是 Android 中习惯使用的便利函数。该函数的要点是确保您在创建 fragment 时始终调用 setArguments,因为 fragment 需要这些参数。你是对的,你不是被要求以这种方式做事。这只是一种习惯模式。

您不能只创建带参数的构造函数,因为 Android 需要能够实例化这些 fragment ,但它无法提供这些参数。

关于java - Java 新手 - 在创建 fragment 时了解 newInstance(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20870284/

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