在Fragments中使用newInstance方法的正确方法是什么。我见过人们使用的大多数地方
public static MyFragment newInstance(int mData) {
MyFragment f = new MyFragment();
Bundle args = new Bundle();
args.putInt("key", mData);
f.setArguments(args);
return f;
}
然后再次检查片段。
那么为什么我需要在方法中使用bundle,当我可以在我的片段中的一个回调方法中直接使用该值。
with this.mdata = mdata; 是否有特殊需要以这种方式使用它。???
答案 0 :(得分:0)
将mData
模式视为使用构造函数的替代方法。 android框架可以随时重新实例化你的片段,它不会调用带有参数的构造函数。例如,如果您旋转屏幕,null
将变为mData
。因此,为了保持onCreate
左右,需要将其放入捆绑包中,然后再从捆绑包中检索(例如,在{{1}}中)。
https://developer.android.com/reference/android/app/Fragment.html