背景信息:我目前正在为我的游戏扩展的Dialog类工作。在这个对话框的内容表中,我有一个Image和一个表(我们称之为ioTable
)。在ioTable
内部,我有标签和TextFields的组合。我们的想法是,对话框成为一种用于填写的形式。
接下来,在Dialog的按钮表内,我想要包含一个“Clear”TextButton(clearButton
)。 clearButton
将清除写入ioTable
的TextFields的任何值的想法。
我的问题:可以为按下ioTable
时触发的clearButton
的每个TextField添加一个侦听器。与往常一样,任何其他创意解决方案都非常受欢迎。
答案 0 :(得分:1)
您可以为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
如果您发现自己创建了多个clearButton,则可以轻松地将其包装在辅助方法中或扩展TextButton
。