在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在我有时间完成第一个之前激活,最后是多个文本框堆叠在一起,并防止任何输入被添加到数组中。我需要一种完全停止代码的方法,然后在文本输入框上按“OK”后再次启动它。
答案 0 :(得分:1)
来自wiki:
当用户输入文本字符串时,将调用input()方法。
因此,您可以将连续调用放在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");
}
}
请注意我没有运行此代码,但我希望我提出的解决方案的想法很明确。