设置Actor侦听按钮单击LibGDX

时间:2016-12-30 21:54:24

标签: java libgdx listener textfield

背景信息:我目前正在为我的游戏扩展的Dialog类工作。在这个对话框的内容表中,我有一个Image和一个表(我们称之为ioTable)。在ioTable内部,我有标签和TextFields的组合。我们的想法是,对话框成为一种用于填写的形式。

接下来,在Dialog的按钮表内,我想要包含一个“Clear”TextButton(clearButton)。 clearButton将清除写入ioTable的TextFields的任何值的想法。

我的问题:可以为按下ioTable时触发的clearButton的每个TextField添加一个侦听器。与往常一样,任何其他创意解决方案都非常受欢迎。

1 个答案:

答案 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