2012-10-24 15 views
9

Dodajemy Fragments do mojego Activity dynamicznie w zależności od interakcji użytkownika. Kiedy wciskam klawisz cofania, fragmenty pękają. Jednak po naciśnięciu klawisza "wstecz" dla fragmentu, który został po raz pierwszy dodany do stosu, "Aktywność" pokazuje pusty układ. Chciałbym, aby Activity wywołało w tym miejscu `finish() 'i zniknęło. Próbowałem:Przycisk "Wstecz" po naciśnięciu ostatniego fragmentu:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    super.onKeyDown(keyCode, event); 
    if(keyCode == KeyEvent.KEYCODE_BACK){ 
     if(getFragmentManager().getBackStackEntryCount()==0){ 
      finish(); 
      return true; 
     } 
    } 
    return true; 
} 

Ale to ma wpływ na blokowanie funkcjonalności klawisza wstecz. Wszelkie wskazówki we właściwym kierunku są doceniane.

Odpowiedz

5

Zmień drugi kod return true; na return false;, aby wskazać, że NIE wykonałeś naciśnięcia klawisza. Powinno to zamknąć działanie, gdy tylny stos jest pusty i pozostawić go tak, jak jest inaczej.

+0

Dzięki. Ten i getBackStackEntryCount() == 1 zrobił lewy. –

6

Gdzie dodajesz swój pierwszy fragment? Nie dodawaj tej transakcji do tylnego stosu, powinna działać tak, jak chcesz.

+0

proste i skuteczne. działa tak, jak tego chciałem. dzięki! – MrMaffen

Powiązane problemy