2013-04-05 2 views
10

S'il vous plaît, quelqu'un suggère, comment puis-je désactiver l'événement de presse bouton arrière tout en travaillant avec PhoneGap?Android DroidGap désactiver le bouton de retour

Je dois faire quelque chose dans mon Activity, (DroidGap code) pour contrôler l'événement de bouton de retour.

Même, le code suivant fonctionne bien dans mon Activity, mais ne fonctionne pas lorsqu'il est utilisé avec DroidGap.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR 
     return true; 
    } 
    return super.onKeyDown(keyCode, event);  
} 

Répondre

7

Appel setOnKeyListener sur appView m'a aidé.

Je viens de faire un changement mineur dans mon extrait de code ci-dessus, qui est comme suit:

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      return true; 
     } 
     return onKeyDown(keyCode, event); 
    } 
}); 

ÉDITÉE

Il se produit en fait deux actions tout événement clé en appuyant sur - Action Up & Action Down

Donc, ce qui suit devrait être utilisé afin d'obtenir l'événement clé.

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 
      // Do Here whatever you want 
      return true; 
     } 
     return onKeyDown(keyCode, event); 
    } 
}); 
+0

Même problème a essayé le code, mais cet événement a tiré deux fois. – TechFanatic

+0

@PnestecDev: Essayez-vous de faire quelque chose sur votre bouton de retour cliquez sur? – NarendraJi

+0

Oui, j'essaie de naviguer dans les pages en arrière cliquent. – TechFanatic

2

Dans mon cas, j'utilise Javascript + jquery comme ceci:

$(document).on('backbutton', 
    function(e){ 

     e.preventDefault(); 

     // do whatever you like here. 

}); 
+0

Y at-il, qui peut être fait dans mon code d'activité? – NarendraJi

+0

ne fonctionne pas pour moi. jQ 1.8.3 + jQM 1.3.2 sur Android (Motorola Razor) – Daniel

+0

cela ne fonctionne pas (jQ v1.11.3) – JFouad

5

Légèrement mieux que la version de Narendra. Il peut gérer les appels de touche pour les touches autres que le bouton de retour correctement. Placez le code ci-dessous à l'intérieur de OnCreate override par exemple.

appView.setOnKeyListener(new View.OnKeyListener() { 

     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_UP) { 
       if(keyCode == KeyEvent.KEYCODE_BACK) { 
        // Do Stuff Here 
        return true; 
       } 
       return onKeyUp(keyCode, event); 
      } 
      return onKeyDown(keyCode, event); 
     } 
    }); 
+0

C'est une belle version improvisée. Merci !!! – Rajaraman

0
// ************ stop the back button ***************** 

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 

     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
0
if (keyCode == KeyEvent.KEYCODE_BACK) { 

    return true; 
} 
Questions connexes