java - 多个连续文本输入 Libgdx

标签 java libgdx

在 libgdx 方法中,我需要连续执行多个简单文本输入,如下所示:

Gdx.input.getTextInput(input, "Insert Object Type Here", "block", "");
addInputs[0] = input.lastInput();
Gdx.input.getTextInput(input, "Insert x here", "", "");
addInputs[1] = input.lastInput();
Gdx.input.getTextInput(input, "Insert y here", "", "");
addInputs[2] = input.lastInput();

问题是,在我有时间完成第一个 getTextInput 之前,下一个 getTextInput 就会激活,最终导致多个文本框堆叠在一起,并阻止任何输入添加到数组中。我需要一种方法来完全停止代码,然后在文本输入框中按“确定”后再次启动它。

最佳答案

来自wiki :

The input() method will be called when the user enters a text string.

所以你可以将连续的调用放在input方法中。例如,像这样:

private int inputCalls;
private String[] promptMessages = new String[] {"Insert Object Type Here", "Insert x here", "Insert y here"};

@Override
public void show() {
    // ...
    // First input call
    Gdx.input.getTextInput(new MyTextInputListener(), promptMessages[inputCalls = 0], "block", "");
}

public class MyTextInputListener implements TextInputListener {
   @Override
   public void input (String text) {
       // Keep input value
       addInputs[inputCalls++] = text;
       if (inputCalls < promptMessages.length) {
           // show the subsequent input
           Gdx.input.getTextInput(this, promptMessages[inputCalls], "", "");
       }
   }

   @Override
   public void canceled () {
       Gdx.app.log("Input", "Input canceled");
   }
}

请注意,我没有运行此代码,但我希望我建议的解决方案的想法是明确的。

关于java - 多个连续文本输入 Libgdx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35828766/

相关文章:

java - Java中的一种负载平衡线程池

android - 使用 Android 物理引擎创建光滑的绳索

java - Libgdx - 如何清洁颜色?

java - onClickListener 事件未在 TableLayout 和动态 n 行上触发

java - Arrays.asList() 与 Collections.singletonList()

java - 私有(private) REST API 成熟度级别和额外的复杂性层

java - 如何将 Crashlytics 与 RoboVM iOS 绑定(bind)一起使用?

java - libGDX 将 Sprite 中的颜色设置为透明

java - libgdx 中的多色文本

java File.listFiles() 顺序无法保证并导致 JUnit 测试失败