Nie wiem, co robić. Ogólny układ mojej aplikacji to wszystko zawarte w jednej czynności. W tym ćwiczeniu ładowany jest pierwotny fragment. Ten podstawowy fragment ma widok wyszukiwania, który może filtrować wyniki. Kliknięcie elementów w głównym fragmencie powoduje wczytanie kolejnego drugiego fragmentu jako okna dialogowego. W dowolnym momencie użytkownik może kliknąć łącze, dodając kolejny podstawowy fragment na stosie. Mój problem polega na tym, że gdy użytkownik naciska wstecz, aby przesunąć wstecz, widok wyszukiwania będzie miał pierwszeństwo przed fragmentami wtórnymi i usunie przefiltrowane dane użytkowników.
Oto idealnie, czego oczekuję od mojego zamówienia na zapleczu
Activity -> primary Fragment -> searchview filter -> secondary fragments * X -> primary fragment -> repeat
Oto moje aktualne zamówienie z backstacka
Activity -> primary fragment -> secondary fragments * X -> searchview filter -> primary fragment -> repeat
Bieżący onBackPressed () znajdujący się w działaniu.
@Override
public void onBackPressed(){
if(getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else {
this.finish();
}
}
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli chcesz zachować odfiltrowane wyniki wyszukiwania, możesz zastąpić onSaveInstanceState()
i zapisz ograniczenie filtru. W Twoim onCreateView()
override, sprawdzasz, czy savedInstanceState
nie ma wartości null, a jeśli tak jest, otrzymasz z tego ograniczenie filtru i ponownie przefiltrujesz wyniki.