【发布时间】:2016-01-15 13:31:34
【问题描述】:
使用 newInstance 模式进行片段继承的正确方法是什么?
例如,如果我们有一个片段 MyFragment 继承自另一个具有 newInstance 模式的片段 SuperFragment --> https://stackoverflow.com/a/28855715/5125212
public class SuperFragment extends Fragment{
public static SuperFragment newInstance(int var1, boolean var2){
SuperFragment fragment = new SuperFragment();
Bundle b = new Bundle();
b.putInt("my_var1", var1);
b.putBoolean("my_var2", var2);
fragment.setArguements(b);
return fragment
}
// All other methods
}
这会在“super”上出错:
public class MyFragment extends SuperFragment{
public static MyFragment newInstance(int var1, boolean var2){
return super.newInstance(int var1, var2);
}
// All other methods
}
这会在构造函数上出错,因为我们应该避免使用非默认构造函数:
public class MyFragment extends SuperFragment{
public MyFragment(int var1, boolean var2){
newInstance(var1, var2);
}
// All other methods
}
我发现这没有任何错误,但我不喜欢它,因为它似乎是递归的:
public class MyFragment extends SuperFragment{
public static SuperFragment newInstance(int var1, boolean var2){
return newInstance(var1,var2);
}
}
【问题讨论】:
标签: android performance android-fragments inheritance fragment