背景信息:我目前在为我的游戏扩展的Dialog类中工作。在此对话框的内容表中,我既有图像又有表(我们称之为ioTable
)。在ioTable
内部,我同时具有Labels和TextFields。这个想法是对话框变成一种供填写的形式。
接下来,在对话框的按钮表中,我想包含一个“清除” TextButton(clearButton
)。 clearButton
将清除所有写入ioTable
的TextField的值的想法。
我的问题:是否可以向ioTable
的每个TextField添加一个侦听器,该监听器将在按下clearButton
时触发。与往常一样,任何其他创意解决方案都倍受欢迎。
最佳答案
您可以只给EventListener引用要清除的表:
// Assuming getSkin() and ioTable are defined elsewhere and ioTable is final
TextButton clearButton = new TextButton("Clear", getSkin());
clearButton.addListener(new EventListener() {
@Override
public boolean handle(Event event) {
for(Actor potentialField : table.getChildren()) {
if(potentialField instanceof TextField) {
((TextField)potentialField).setText("");
}
}
return true;
}
});
// Add clearButton to your dialog
如果您看到自己创建了多个clearButtons,则可以轻松地将其包装在辅助方法中或扩展
TextButton
。