Я пытаюсь вызвать метод сразу после нажатия клавиши BACK. Я пытаюсь сделать это в режиме редактирования (при записи текста в TextField с помощью Scene2D, libgdx), поэтому при этом будут присутствовать кнопки клавиатуры. Используя простой InputProcessor, установленный в Stage, или даже InputMultiplexer, кажется, что он не работает в любом случае. Система каким-то образом ловит событие и возвращает false после того, как системная клавиатура исчезает с экрана.
Первый использованный метод:
@Override
public void create() {
...
Gdx.input.setCatchBackKey(true);
...
}
@Override
public boolean keyDown(int keycode) {
...
if(keycode == Keys.BACK){
// Optional back button handling (e.g. ask for confirmation)
...
if (shouldReallyQuit)
Gdx.app.exit();
}
return false;
}
Используется второй метод:
InputProcessor backProcessor = new InputAdapter() {
@Override
public boolean keyDown(int keycode) {
if ((keycode == Keys.ESCAPE) || (keycode == Keys.BACK))
// Some code
return false;
}
};
InputMultiplexer multiplexer = new InputMultiplexer(mStage,
backProcessor);
Gdx.input.setInputProcessor(multiplexer);
В чем тут может быть дело?
Кроме того, в текстовом поле TextField нет метода setOnEditorActionListener, используемого для решения вышеуказанных проблем.