我正在尝试在Android中构建一个动态控件,它使用构建器模式构建一个看起来像这样的视图:
[**文字] [**文字]
基本上,我希望创建一个带有图像和一些文本的视图,并将多个这样的视图组合在一起。
public static class DualBuilder {
private final Context mContext;
protected Drawable mFirstButtonIcon;
protected Drawable mSecondButtonIcon;
protected String mFirstButtonText;
protected String mSecondButtonText;
private DualBuilder(@NonNull final Context context) {
mContext = context;
}
public DualBuilder firstButtonIcon(@Nullable final Drawable firstButtonIcon) {
super.buttonIcon(firstButtonIcon);
return this;
}
public DualBuilder firstButtonText(@NonNull final String firstButtonText) {
super.buttonPrimaryText(firstButtonText);
return this;
}
public DualBuilder secondButtonIcon(@Nullable final Drawable secondButtonIcon) {
mSecondButtonIcon = secondButtonIcon;
return this;
}
public DualBuilder secondButtonText(@NonNull final String secondButtonText) {
mSecondButtonText = secondButtonText;
return this;
}
public MultiViewControl build() {
return new MultiViewControl(this);
}
}
如果我有两个这样的观点,上面将是一个建设者。构造函数将获取构建器变量并使用它们为每个第一/第二视图构造布局。如何发生这些问题的细节不是问题,我只想学习如何以灵活的方式构建这样的东西,以便它可以接受1 ... n个视图。我可以使用什么样的模式来实现这一目标?任何代码示例都将非常感激。
答案 0 :(得分:0)
答案 1 :(得分:0)
我的两便士在这里...我根据自己的经验动态提出了这个问题。 因此,在我看来,您的基本视图内容是图像和字符串。如果我们将此视为一个名为ViewContent的对象结构,那么我们可以想象构建器采用ViewContent对象的组合,因此我们可以将1..n这样的对象作为复合作为输入传递给Builder对象,然后继续对其进行操作。所有这些对象并为你创建一个布局...希望这会有所帮助。