Android:我应该添加一个空的构造函数到ViewPager中使用的片段

我正在做一个布局,类似于Google Play的。 我正在使用需要片段的ViewPager。 我现在有点困惑,因为有些网站说,片段需要一个空的构造函数,但developer.android.com上的例子不包含构造函数。 有代码就像这样:

public static class DemoObjectFragment extends Fragment { public static final String ARG_OBJECT = "object"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // The last two arguments ensure LayoutParams are inflated // properly. View rootView = inflater.inflate( R.layout.fragment_collection_object, container, false); Bundle args = getArguments(); ((TextView) rootView.findViewById(android.R.id.text1)).setText( Integer.toString(args.getInt(ARG_OBJECT))); return rootView; } } 

那么是否需要在片段中包含构造函数?或者我可以省略构造函数?

Java编译器会自动向任何没有构造函数的类添加一个默认的无参数构造函数(这是您在问题中引用的“空构造函数”)。

下面的空课:

 public class A { } 

相当于下面的类,带有空参数的无参数构造函数:

 public class A { public A() { } } 

只有在包含具有一个或多个参数的其他构造函数时,才需要显式添加无参数构造函数,因为在这种情况下,编译器不会为您添加它。

如果不添加任何构造函数,则调用构造函数将引用超级构造函数(与创build空构造函数相同)。 但是,如果你要创build任何其他的构造函数(不需要使用片段,在onCreate中做任何你想做的事情,你的片段不会总是被实例化,有时系统会实例化片段,而空构造函数会被调用)需要提供一个空的。