Oto scenariusz, który powoduje problemy:Błąd fragmentu Backstack podczas zastępowania fragmentów w transakcji?
- zacznę się acitivity z ViewGroup że będziemy trzymać prezentowanych fragmentów.
- Załaduję fragment A do tej grupy widoków, wywołując .replace() w transakcji, którą zapisuję na backstacku.
- Wczytuję Fragment B do grupy View, zastępując Fragment A. Ponownie zapisuję transakcję.
- Obracam urządzenie dwukrotnie.
- Przy drugim obrocie fragment A (obecnie niewidoczny) spowoduje zgłoszenie wyjątku NullPointer.
Ten wyjątek jest zgłaszany przez fragment A, ponieważ zapisuję niektóre wartości widoków (EditTexts np.) W jego metodzie onSaveInstanceState(). Wygląda na to, że podczas drugiej rotacji system nie tworzy tych widoków, więc gdy pytam ich wartości, otrzymuję wyjątek NullPointer. Czy można tego w jakiś sposób uniknąć? Lub używa operacji .replace w transkacji fragmentu zapisanych na backstack bez nadzoru?
Zauważyłem, że przyjąłeś tę odpowiedź ... co okazało się przydatne? –