2013-05-20 11 views
7

Nadpisuję funkcję OnBackPressed w mojej aktywności, ale nie jest ona wywoływana. W innych działaniach działa dobrze. Oto moja metoda:OnBackPressed nie jest wywoływany?

@Override 
public void onBackPressed() { 
    Log.e("back",""+1); 
    UserPage.getstate().finish(); 
    Intent i=new Intent(CreateGroup.this,UserPage.class); 
    i.putExtra("title11","dd"); 
    startActivity(i); 
    finish(); 
} 

Metoda ta nie jest nazywany, a domyślne OnBackPresssed nazywa każdym naciśnięciu przycisku Wstecz.

+3

Co to jest "UserPage.getstate(). Finish();" robić? –

+0

masz ten Log.e ("powrót", "" + 1); w logu ?? –

+0

Użyłem funkcji statycznej w UserPage, aby uzyskać stan działania, a następnie kończę go. –

Odpowiedz

7

wypróbować ten kod

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
    } 
    return true; 
} 
+0

Naprawdę próbowałem tego i to nie działa. –

+0

Używam metod onStop i onRestart w aktywności UserPage. Czy to ma coś wspólnego z tym? –

+0

Oprócz zmiany aktywności, czy widzisz logowanie? Lub przycisk Wstecz też nie działa? Czym jest Twoja wersja Androida? –

4

Czy próbowałeś tego? ,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back pressed. 


     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
2
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
6

miał podobny problem. Problem dla mnie był w moim override of onKeyDown() ukrywanie zdarzeń keydown KEYCODE_BACK.

Powiązane problemy