2017-02-21 1 views
0

Je crée un jeu Android avec le framework libGDX. Mon écran de réglage est implémenté avec scene2d. J'ai géré l'événement de clic sur le bouton précédent en implémentant une classe inputProcessorAdapter. Ajouter cela et Stage à InputMultiplexer pour la gestion des entrées.La gestion des entrées libgdx ne fonctionne pas après la sauvegarde d'une page Web ouverte en cliquant sur adView

Tout fonctionne bien sauf après avoir cliqué sur adView en bas de l'écran, puis de revenir à l'écran de la page Web google advertise. La clé retour ne peut plus être capturée par inputProcessorAdapter. Et le clavier n'est plus affiché lorsque Textfield of Stage est mis au point. Voici mon code de saisie.

inputProcessor = new InputProcessorAdapter() { 
    @Override 
    public boolean keyDown(int keycode) { 
     if (keycode == Input.Keys.BACK) { 
      // Go back to main menu 
      stage.unfocusAll(); 
      Gdx.input.setOnscreenKeyboardVisible(false); 
      SettingScreen.this.game.setScreen(new MainMenuScreen(SettingScreen.this.game)); 
     } 
     return false; 
    } 
}; 

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

En attente de votre réponse ou de vos conseils.

Répondre

0

Vous devez ajouter

Gdx.input.setCatchBackKey(true); 

après votre appel setInputProcessor donc tout le code devrait ressembler à

... 
Gdx.input.setInputProcessor(multiplexer); 
Gdx.input.setCatchBackKey(true); 
... 
+0

Merci beaucoup pour votre réponse rapide. J'ai essayé votre solution, mais cela ne fonctionne toujours pas. En fait, j'ai ajouté 'Gdx.input.setCatchBackKey (true);' dans la méthode 'create()' de la classe de jeu libgdx depuis le début. – go3boy

0

Enfin, j'ai trouvé une solution inspirée par un sujet dans le site forum officiel. Lifecicle messed up by Admob

Voici le code de ma solution.

adView.setAdListener(new AdListener() { 
     @Override 
     public void onAdClosed() { 
      super.onAdClosed(); 
      gameView.requestFocus(); 
     } 
    });