有人可以解释这段代码的作用。例如,第二个声明是做什么的?即public static AlertDialogFragment newInstance()
在这里:
public static class AlertDialogFragment extends DialogFragment {
public static AlertDialogFragment newInstance() {
return new AlertDialogFragment();
}
答案 0 :(得分:2)
在android中,当你的类扩展Fragment时,它需要一个没有参数的构造函数(或根本没有构造函数),但是如果你想在创建它时为片段的每个对象设置一些东西,你可以做以下事实:
public static class AlertDialogFragment extends DialogFragment {
private int value=0;
public static AlertDialogFragment newInstance(int value) {
AlertDialogFragment instance=new AlertDialogFragment();
instance.value=value;
return instance;
}
}
现在通过调用
获取AlertDialogFragment
对象
AlertDialogFragment fragment=AlertDialogFragment.newInstance(10);
在你的情况下,newInstance
方法没有取得多大成就。
答案 1 :(得分:1)
只需创建AlertDialogFragment
的新实例并返回。
通常我们创建像
这样的instnaceAlertDialogFragment adf = new AlertDialogFragment();
在你的情况下
AlertDialogFragment adf = AlertDialogFragment.newInstance();
看,没有区别。
答案 2 :(得分:0)
newInstanse()是java.lang.Class的一个方法,它将创建指定的类类型的新实例。它将简单地调用默认构造函数,类似于我们调用时的操作,
Class instance = new Class();
它的文档说:
java.lang.Class.newInstance()创建此Class对象表示的类的新实例。该类实例化为具有空参数列表的新表达式。如果尚未初始化,则初始化该类。