使用 Inputmultiplexer 在 Android 上捕获返回键

Catching the Back key on Android with an Inputmultiplexer

我还有一个问题要问你。

所以我正在尝试让用户输入在选项菜单上工作。为此我得到了: 1.舞台和 2. 一个额外的输入适配器

我需要额外的输入适配器来捕捉 Android 上的 BACK 键。所以我使用了 Inputmultiflexer,它允许我使用两个输入处理器。

    InputMultiplexer multiplexer = new InputMultiplexer();
    multiplexer.addProcessor(this);
    multiplexer.addProcessor(stage);
    Gdx.input.setInputProcessor(multiplexer);

    Gdx.input.setCatchBackKey(true);

我检查后退按钮的方法如下所示:

@Override
public boolean keyUp(int keycode){


    if(keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK){
        new MenuScreen(game);
        return true;
    }

    return false;
}

问题:它根本不工作。当使用 Android 上的返回键或桌面上的 Escape 键时,它不会返回。按下按钮时控制台打印的唯一内容是:

Load KCM of non-default device may incur unexpected result

老实说,我不知道它的意思,Google 也没有帮助我。

那么我该如何让它工作呢?

首先在调试时,你应该使用像这样的东西:

System.out.println("back was pressed");

如果您在控制台中看到该输出,则说明输入正常。如果可行,我在您的代码中看到的唯一问题是您可能创建了一个新屏幕 class,您从未让它切换屏幕。我注意到你传入了游戏对象,所以你应该有这样的东西:

game.setScreen(new MenuScreen(game));

希望对您有所帮助。