我想正确理解从构造函数中获取片段的这些方法之间的区别:
public MyFragment(DataClass data) {
this.dataClass = data;
}
public static MyFragment newInstance(DataClass data) {
MyFragment fragment = new MyFragment();
fragment.setDataClass(data);
return fragment;
}
public static MyFragment newInstance(DataClass data) {
MyFragment fragment = new MyFragment();
Bundle args = new Bundle();
args.putInt("myData", data.getData());
fragment.setArguments(args);
return fragment;
}
提前致谢。
答案 0 :(得分:1)
首先,Fragment
应该只有空构造函数!
请检查documentation,说明:
" 每个片段必须有一个空构造函数..."。
然后查看this post以获得更好的解释。
关于选项## 2和3 - 对我来说,两者都是合适的。
通过Bundle
- 再次上面提到的帖子说,"这种方式如果分离并重新附加对象状态可以通过参数存储。"。
但是如果每次都创建newInstance
Fragment
- #2方法也很好。我使用#2方法,因为我没有存储创建的片段。