2013-04-05 15 views
10

Bitte, jemand vorschlagen, wie kann ich zurück drücken Taste drücken Ereignis während der Arbeit mit PhoneGap?Androide DroidGap Deaktivierung Zurück-Taste

Ich brauche etwas in meinem Activity, (code) für die Steuerung der Zurück-Taste Ereignis.

Auch der folgende Code funktioniert gut in meinem Activity, aber nicht funktioniert, wenn mit DroidGap verwendet wird.

@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);  
} 

Antwort

7

Aufruf setOnKeyListener auf appView half mir aus.

Ich hatte gerade eine kleine Änderung in meinem obigen Code-Schnipsel zu machen, die wie folgt lautet:

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

EDITED

tatsächlich auftritt es zwei Aktionen während Schlüssel-Taste Ereignis - Action Up & Action Down

So sollte das Folgende verwendet werden, um das Schlüsselereignis zu erhalten.

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

Hatte das gleiche Problem versucht den Code, aber dieses Ereignis zweimal ausgelöst. – TechFanatic

+0

@PnestecDev: Versuchen Sie, etwas auf Ihrem Back Button klicken? – NarendraJi

+0

Ja, ich versuche, die Seiten beim Zurückklicken zu navigieren. – TechFanatic

2

In meinem Fall verwende ich Javascript + Jquery wie so:

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

     e.preventDefault(); 

     // do whatever you like here. 

}); 
+0

Gibt es irgendetwas, das in meiner Tätigkeit Code kann getan werden? – NarendraJi

+0

funktioniert nicht für mich. jQ 1.8.3 + jQM 1.3.2 auf Android (Motorola Razor) – Daniel

+0

es funktioniert nicht (jQ v1.11.3) – JFouad

5

Etwas besser als Narendras Version. Es kann Tastenanrufe für andere Tastendrücke als die Rücktaste richtig verarbeiten. Setzen Sie den folgenden Code in onCreate override zum Beispiel.

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

Dies ist eine schöne improvisierte Version. Vielen Dank !!! – 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; 
}