我在引用Google的documentation:
Fragment的所有子类都必须包含一个公共空构造函数。 框架通常会在需要时重新实例化一个片段类, 特别是在状态恢复期间,需要能够找到这个 构造函数来实例化它。
如果片段需要参数会发生什么?假设我使用非参数c'tor创建了片段的实例,然后将片段添加到Activity中。 Android将如何知道状态恢复?或者我应该手动处理它(如果参数是复杂的视图模型,我可能不会这样做)?
答案 0 :(得分:1)
您需要使用参数传递一个Bundle,如下所示:
class MyFragment extends Fragment{
private static final String MY_FIELD = "myfield";
public static MyFragment newInstance(int param){
MyFragment result = new MyFragment();
Bundle args = new Bundle();
args.putInt(MY_FIELD, param);
result.setArguments(args);
return result;
}
...
private void myMethod(){
int myField = getArguments.getInt(MY_FIELD);
}
}