我总是使用 newInstance() 模式创建片段并将参数传递给片段。这适用于一两个参数。我现在正在创建一个包含大约 10 个参数的片段,并且它们都是可选的。
我正在考虑使用 Builder 模式,类似于 AlertDialog 的工作方式。但是,我不确定实现这一点的最佳方法是什么,或者它是否是一个好主意。
这是我在想的一个例子,但有更多的变量。
public class MyFragment extends Fragment {
private String name;
private static class Builder {
private String name;
public Builder setName(String name) {
this.name = name;
return this;
}
public MyFragment build() {
return new MyFragment(this);
}
}
// NOT ALLOWED
public MyFragment(Builder builder) {
name = builder.name;
}
// Rest of the fragment...
}
这样做的问题是片段必须有一个默认构造函数,所以这不起作用。
有没有“正确”的方法来做到这一点?