2013-04-05 19 views
10

Proszę, ktoś zasugeruje, jak wyłączyć wydarzenie naciśnięcia przycisku Wstecz podczas pracy z PhoneGap?Android DroidGap wyłączający przycisk powrotu

Potrzebuję zrobić coś w moim Activity, (DroidGap kod) do kontrolowania zdarzenia przycisku Wstecz.

Nawet poniższy kod działa dobrze w moim Activity, ale nie działa, gdy jest używany z 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);  
} 

Odpowiedz

7

Wywołanie setOnKeyListener na appView mi pomógł.

miałem tylko dokonać drobnych zmian w moim powyższym fragmencie kodu, który przedstawia się następująco:

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

Tam faktycznie występuje dwóch działań, przy jednoczesnym przypadku klucza tłoczenie - Action Up & Action Down

W związku z tym, aby uzyskać kluczowe wydarzenie, należy wykonać następujące czynności.

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

Gdyby ten sam problem próbował kod, ale to zdarzenie wystrzelił dwukrotnie. – TechFanatic

+0

@PnestecDev: Czy próbujesz coś zrobić na kliknięciu przycisku Wstecz? – NarendraJi

+0

Tak, próbuję nawigować po stronach po kliknięciu. – TechFanatic

2

W moim przypadku używam JavaScript + jQuery tak:

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

     e.preventDefault(); 

     // do whatever you like here. 

}); 
+0

Czy jest coś, co można zrobić w moim kodu aktywności? – NarendraJi

+0

nie działa dla mnie. jQ 1.8.3 + jQM 1.3.2 na Androidzie (Motorola Razor) – Daniel

+0

to nie działa (jQ v1.11.3) – JFouad

5

Nieco lepszy niż wersja Narendry. Może obsługiwać wywołania klawiszowe dla naciśnięć klawiszy innych niż przycisk Wstecz poprawnie. Umieść poniższy kod na stronie na przykład Zastąp symbol.

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

To jest ładna improwizowana wersja. Dzięki !!! – 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; 
} 
Powiązane problemy