[英]Calling newInstance() when creating a child fragment extending a parent fragment
[英]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.