我想改进我创建以下 UI 的方式。目前,我正在根据每个对象的类型属性以编程方式创建每个表格行。
class objectDTO {
private type; //enum
public boolean isMultiple(){...}
public boolean isSingle(){...}
}
我正在尝试找到一个更动态的解决方案,例如为每种类型创建一个类,它可能不需要像在 fragment 类中那样以编程方式添加布局和组件,
if(objectDTO.isMultiple()) {
//Create TableRow + Multiple radiobuttons
}
else if(objectDTO.isSingle() {
//Create TableRow + Add One Checkbox
{
else {
//Create default invalid object Interface or skip
}
拥有一个列表适配器并在那里应用不同的用户界面只会将设计问题转移到其他类。
早日感谢您的贡献
最佳答案
嗯,对您来说,简单的解决方案是拥有一个类层次结构——一个基本的 objectDTO 类和每个类型的一个子类。加载对象列表时,使用工厂方法创建正确类型的对象。每种类型都会覆盖一个 createView
方法,该方法将为该类型创建 View 。那么你的建表函数就变成了:
for(objectDTO object : allObjects){
View view = object.createView();
tableView.addView(view, lp);
}
但是如果你正在为一个对象类型创建一个 View ,那么总是需要有人动态地创建 View 对象(在这种情况下是 createView),并且总是需要一些知道什么类的函数制作一个对象(在本例中为工厂)。这只是您希望这种复杂性出现在哪里的问题。
关于android - android 中的类型化 UI 和监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220673/