2011-01-10 11 views

Odpowiedz

105

Powinieneś użyć finish(), gdy użytkownik kliknie przycisk, aby przejść do poprzedniej aktywności.

Button backButton = (Button)this.findViewById(R.id.back); 
backButton.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    finish(); 
    } 
}); 

Ewentualnie, jeśli naprawdę trzeba, można spróbować wywołać własną naciśnij klawisz Wstecz:

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK)); 

wykonać zarówno z nich.

+0

Nie mogę użyć metody finish() ... w rzeczywistości mam formularz o nazwie harmonogramu, w którym chcę użyć harmonogramu i przycisku wstecz ... przycisk harmonogramu zaplanuje daty i na wypadek, gdyby użytkownik chciał anuluj daty planowania, które może anulować, używając przycisku Wstecz w przycisku Anuluj .... – Sourabh

+7

Aby wywołać backbutton przez dispatchKeyEvent, musisz wyzwolić zarówno ACTION_DOWN, jak i ACTION_UP. To naśladuje kliknięcie przycisku. Bez posiadania obu, przycisk Wstecz nie uruchomi się. –

+3

Czy przycisk BackButton zawsze się kończy? Nie sądzę. A co z operacją fragmentu? – alicanbatur

30

Jeśli potrzebujesz dokładnej funkcji przycisku Wstecz w swoim przycisku niestandardowym, dlaczego nie zadzwonić pod numer yourActivity.onBackPressed() w ten sposób, jeśli zastąpisz funkcję przycisku wstecz, Twój przycisk będzie zachowywał się tak samo.

+0

Nie mogę użyć metody finish() ... w rzeczywistości mam formularz o nazwie harmonogramu, w którym chcę użyć harmonogramu i przycisku powrotu ... przycisk harmonogramu będzie planował daty i na wypadek, gdyby użytkownik chciał anulować daty planowania można go anulować za pomocą przycisku Wstecz na przycisku Anuluj .... – Sourabh

+8

Nie wiem, jak ten komentarz odnosi się do mojej odpowiedzi ... Nie proszę o wywołanie funkcji finish(), ale o wywołanie funkcjiBackPressed() z przycisku menu Kliknij. – ekawas

10
public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
        // your code here 
        return false; 
      } 
     return super.onKeyDown(keyCode, event); 
    } 
Powiązane problemy