2010-10-21 17 views
5

Chcę zablokować sprzęt z powrotem przycisk w Androidzie, w celu zapobieżenia od wracając do innej działalności .. Z góry dzięki ...Blok Przycisk Wstecz w android

+0

Nie rób tego .. – Falmarri

+0

Nie ma powodu do głosowania, ponieważ pytanie jest zgodne z prawem: Możesz wyłączyć przycisk Wstecz w przypadku dialogów, więc przynajmniej podczas używania działania w stylu okna dialogowego może być przydatne blokowanie przycisku Wstecz. – sven

Odpowiedz

17

Oto kod, który pozwala poprawnie obsługiwać kluczyk z powrotem w działalność na wszystkich wersjach platformy:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 
    return; 
} 

źródeł: http: //android-developers.blogspot.com/2009/12 /back-and-other-hard-keys-three-stories.html

+0

Znakomity, szczególnie ze względu na niezręczny backgack Frgagmenta z Androidem, który nie pozwala na wyczyszczenie najstarszych przedmiotów przy zachowaniu najnowszego. –

+0

@ 100rabh, użyłem powyższego kodu, który działał idealnie w moim GameView. Jednak w widoku Mam okna dialogowe. Jak mogę wdrożyć powyższe wyłączenie przycisku Wstecz dla wyskakujących okienek? Dzięki –

+0

@LandLPartners W przypadku okien dialogowych musisz obsługiwać klucze za pomocą [DialogInterface.OnKeyListener] (http://developer.android.com/reference/android/content/DialogInterface.OnKeyListener.html). Po prostu złap klucz z tyłu jak wyżej i gotowe! – 100rabh

4

Jeśli „inna działalność” należy do ciebie, możesz ustawić, aby nie pojawiał się na liście historii.

W przeciwnym razie pamiętaj, że telefon należy do użytkownika, a nie do Ciebie, i przestań próbować im powiedzieć, co mogą i czego nie mogą zrobić z TEGO urządzenia.

+0

+1 Przestań się bawić z oczekiwanym zachowaniem. – benvd

+2

Myślę, że w niektórych przypadkach jest to do przyjęcia. Po prostu wpadłem na taki, w którym mam zestaw preferencji, które automatycznie zapisują, gdy użytkownik wraca, jednak w przypadku, gdy zapomniały wypełnić pole, ostrzegam je, aby potwierdzić, czy nie chcą wrócić do utraty zmian. .. – Redth

Powiązane problemy