In libgdx, how do I get input from the back button?

For my game, I'd like the Android back button to take you to the pause menu, instead of minimizing the game. From what I've googled, I know I need to call

Gdx.input.setCatchBackKey(true);

But how do I actually check for the button press? input.isKeyDown(Keys.BACK) doesn't seem to do anything.


I solved the problem like this:

public class MyApplication implements ApplicationListener, InputProcessor {
   // !! Remember to override all other required methods !!
   ...

   @Override
   public void create() {
        Gdx.input.setInputProcessor(this);
        Gdx.input.setCatchBackKey(true);
        // rest of your stuff...
   }

   ...

   @Override
   public boolean keyDown(int keycode) {
        if(keycode == Keys.BACK){
           // Do your optional back button handling (show pause menu?)
        }
        return false;
   }

   ...
}

Not copypasta stuff but hopefully this helps you out. :)


You can use Gdx.input.isKeyPressed method.

if (Gdx.input.isKeyPressed(Keys.BACK)){
  // Do something
}

First create an InputProcessor to handle the back key actions and then add it to a multiplexer so that other components still receive similar events.

      InputProcessor backProcessor = new InputAdapter() {
            @Override
            public boolean keyDown(int keycode) {

                if ((keycode == Keys.ESCAPE) || (keycode == Keys.BACK) )

                // Maybe perform other operations before exiting
                Gdx.app.exit();
                return false;
            }
        };


        InputMultiplexer multiplexer = new InputMultiplexer(mStage,
                backProcessor);
        Gdx.input.setInputProcessor(multiplexer);


And enable catching the back key.

Gdx.input.setCatchBackKey(true);


That's all there is. Good luck!


You can use Gdx.input.isKeyPressed(Keys.BACK) but if you want that Activity does not closes you can handle this as:

Gdx.input.setCatchBackKey(true);