繁体   English   中英

Java的新手-创建片段时了解newInstance()

[英]new to java - understanding newInstance() when creating a 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中惯用的便捷函数。 该函数的目的是确保在创建片段时始终调用setArguments ,因为片段需要这些参数。 你是对的,你是不是这样做事需要 这只是一种习惯模式。

您不能只创建带有参数的构造函数,因为Android需要能够实例化这些片段,并且它不能提供这些参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM