8

Mam 4 (powiedzmy 1,2,3 & 4) fragmentów. I w dowolnym czasie każdy z nich będzie widoczny dla Użytkownika. W drugim fragmencie chcę coś zrobić, gdy użytkownik się na niego pojawi. Teraz, gdy użytkownik nawigował do trzeciego fragmentu &, kliknij przycisk Wstecz, chcę uruchomić jakiś kod. Mój problem polega na tym, że onResume nie jest wywoływany, gdy użytkownik kliknie przycisk powrotu. & przychodzi do drugiego fragmentu.Fragment onResume nie nazywa się

+0

spróbuje użyć 'onAttach()' metoda, nie 'onResume()' – Procurares

+0

Już próbowałem .... Właściwie OnAttch() jest nazywany po prostu raz, kiedy dołączyć go od aktywności fragmentu. – hemu

+0

Jak przełączasz się między fragmentami? Proszę podać przykładowy kod. – antonyt

Odpowiedz

4

Niedawno natknąłem się na ten sam problem, wiem, że jest za późno, ale na wszelki wypadek ktoś inny szuka tego, oto moja odpowiedź:

Dzięki @fasteque do zawężenia moje poszukiwania.

Fragmenty onResume() lub onPause() będą wywoływane tylko po wywołaniu działań onResume() lub onPause(). Są ściśle powiązane z Działalnością.

Ale jeśli nadal chcesz słuchać zmian w swojej działalności jak fragment, który jest na górze, a wyzwalać zdarzenia odpowiednio, może chcesz przyjrzeć się FragmentManager.OnBackStackChangedListener

nadzieję, że to pomaga :)

1

I Miałem ten sam problem. Jeśli chcesz przełączyć się z trzeciego fragmentu do drugiego fragmentu (tylnym przyciskiem lub w inny sposób), możesz wywołać drugi fragment w opcji "Wstrzymaj trzeci fragment".

@Override 
public void onPause() { 
    super.onPause(); 

    Fragment2 fragment2= (Fragment2) getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment2); 
    if (fragment2!= null) { 
     //you can call any function from fragment2 
     fragment2.SomeFunctions(); 
    } 
}