使用Inputmultiplexer在Android上捕获Back键

时间:2015-03-28 21:28:16

标签: android libgdx back

我还有另一个问题。

所以我试图让用户输入在选项菜单上工作。为此我得到了: 舞台和舞台 2.额外的Inputadapter

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

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

    Gdx.input.setCatchBackKey(true);

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

@Override
public boolean keyUp(int keycode){


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

    return false;
}

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

  

加载非默认设备的KCM可能会产生意外结果

说实话,我不知道它的意思是什么,谷歌也没有帮助我。

那么我该如何让它发挥作用呢?

1 个答案:

答案 0 :(得分:1)

首先在调试时,你应该使用类似的东西:

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

如果您在控制台中看到该输出,那么您知道输入正在运行。如果这样做,我看到你的代码唯一的问题是你可能已经创建了一个新的屏幕类,你从来没有让它切换屏幕。我注意到你传入游戏对象,所以你应该有这样的东西:

game.setScreen(new MenuScreen(game));

希望这有帮助。