【问题标题】:Setting Actor To Listen For Button Click In LibGDX在 LibGDX 中设置 Actor 以侦听按钮单击
【发布时间】:2016-12-30 21:54:24
【问题描述】:

背景信息:我目前正在为我的游戏扩展的 Dialog 类工作。在这个对话框的内容表中,我有一个图像和一个表格(我们称之为ioTable)。在ioTable 内部,我有标签和文本字段的组合。这个想法是对话框成为一种供填写的表格。

接下来,在对话框的按钮表中,我想包含一个“清除”文本按钮 (clearButton)。 clearButton 的想法将清除写入 ioTable 的 TextFields 的任何值。

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

【问题讨论】:

    标签: java libgdx listener textfield


    【解决方案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

    【讨论】:

    • 完美! instanceof 操作符完全逃不过我了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多