Którego użyć NavUtils.navigateUpFromSameTask () vs. onBackPressed ()
Mam dwie czynności A i B. A ma ListFragment, który używa LoaderManager, podczas gdy aktywność B pokazuje szczegóły o elemencie wybranym na liście A na liścieFragment. Właśnie zauważyłem, że kiedy używam przycisku Wstecz, aby przejść z B z powrotem do A, pozycja w zachowaniu ListFragment, ale kiedy używam przycisku „w górę” (lewy punkt) w pasku akcji, to działanie A jest odtwarzany, a zatem pozycja w widoku listy jest tracona.
Chciałbym rozwiązać ten problem, ale nie jestem pewien, jak najlepiej to zrobić.
Wymyślam takie rozwiązania:
a) UżyjonBackPressed()
Zastąp domyślną implementację dlaandroid.R.id.home
(przycisk paska akcji w górę) w działaniu B i zamiastNavUtils.navigateUpFromSameTask(this)
wywołanie funkcjionBackPressed()
metoda aktywności. Przetestowałem to i działa.
b) Zachowaj użytkowanieNavUtils.navigateUpFromSameTask(this)
Ale zaimplementujonSaveInstanceState
i przywróć pozycję ListView podczasonCreate
metoda ListFragment używana przez działanie A. (Nie testowałem jeszcze tego podejścia)
Które z tych rozwiązań jest lepsze? Czy jest jakieś inne (o wiele lepsze) rozwiązanie?
Rozwiązanieza) jest dość prosta i prosta, aleb) jest prawdopodobnie lepszy, ponieważdomyślna stosowana jest implementacja karetki.
Wszelkie pomysły są mile widziane. Dzięki.