2012-03-05 9 views
9

Desidero implementare la funzionalità del pulsante Indietro nella mia applicazione. Nell'applicazione ogni volta che clicco sul pulsante Indietro al centro il mio controllo accede direttamente alla pagina di accesso, quindi qualcuno può dirmi dove sovrascrivere i metodi onKeyDown() o onBackPressed()?onKeyDown() o onBackPressed()

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back key pressed","Back key pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

perché sto scrivendo questo all'interno e all'esterno onCreate onCreate anche, ma non sta funzionando ......

+0

In generale, metodi come 'onKeyDown()', o 'onBackPressed()' dovrebbe essere di esclusione (è possibile usufruire di IDE, cioè, Eclipse, per fare in modo così bello), in modo da dovrebbe essere fuori da 'onCreate()'. Puoi spiegare esattamente il tuo problema? Cosa c'è che non va? – Huang

+0

Guarda questa risposta: http://stackoverflow.com/a/3558613/571353 – SERPRO

+1

aggiungi @Override sopra la funzione ... ??? – mihail

risposta

7

Dipende se si desidera supportare pre-Android 2.0 cellulari. Il metodo onBackPressed() è stato aggiunto ad Android 2.0 (API 5).

Si consiglia di leggere questo post sul blog sviluppatori Android per i dettagli:

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

+0

thanku man ma dove scrivere questo metodo ???? perché sto cercando di scrivere questo metodo dentro onCreate e out side onCreate ma ancora controllo non sta andando dentro il metodo puoi aiutarmi con una semplice risposta ??? – user1249134

+0

Grazie a tutti .... :-))))) voi ragazzi siete geniali ............. – user1249134

3

Sì, è possibile ignorare che di nuovo il tasto

public void onBackPressed() { 

    Intent start = new Intent(currentclassname.this,which activity u want.class); 
     startActivity(start); 
     finishActivity(0); 
     } 

Con questo è possibile passare a qualsiasi attività. Questo è un modo semplicissimo e semplice

1

Se la tua preoccupazione riguarda la rimozione dell'attività di accesso dallo stack cronologico.

Execute finish(); nella tua attività di accesso quando avvii qualsiasi altra attività da quello

+0

3-05 14: 13: 56,327: W/KeyCharacterMap (374) : Usando la mappa dei tasti predefinita: /system/usr/keychars/qwerty.kcm.bin – user1249134

+0

HELLO amici il mio controllo non sta entrando nel metodo OnBack? Un qualsiasi corpo può aiutare a rimuovere questo ???? – user1249134

+0

Modifica intento = nuovo intento (getParent(), MyGroup.class); \t \t TabGroupActivity parentActivity = (TabGroupActivity) getParent(); \t \t parentActivity.startChildActivity ("Aggiungi contatti", modifica); – user1249134

3

vedi sotto codice. scrivere al di fuori onCreate

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode==KeyEvent.KEYCODE_BACK) 
     { 

       Intent intent = new Intent(currentActivity.this, RequiredActivity.class); 
       finish(); 
       startActivity(intent); 

     } 
     return true; 
    } 
Problemi correlati