2011-03-06 19 views
8

Tak więc, dostałem zdarzenie w moim fragmencie, aby przekazać je do działania, więc jak zrobić to tak, że działanie na przemian, powiadamia fragment B, aby coś zrobić. Chcę fragment B, aby zapełnić niestandardową listę, gdy fragment A ma kliknięty element listy. W związku z tym wysyła zdarzenie do działania, a teraz w jaki sposób sprawić, aby działanie wywołało zdarzenia w fragmencie B?Wywoływanie zdarzeń fragmentów z aktywności

Odpowiedz

32

Jednym ze sposobów, aby to zrobić byłoby tak w swojej działalności:

FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.fragmentBId); 
fragmentB.performSomeTask(); 

Jest to oczywiście przy założeniu, że masz publicznie przystępnie metoda FragmentB nazywa performSomeTask();

Nadzieję, że pomaga!

+0

Jestem głupi, mogę to zrobić, wywołując metodę fragment_b.doTask(), jeśli jest ona zadeklarowana jako publiczna i statyczna. – Shaun

+2

jeśli wywołasz metodę performSomeTask w metodzie onCreate i powiedz, że wypełniłeś na niej jakieś pole edittext. Będziesz mieć wyjątek wskaźnika pustego w przypadku inicjalizacji edittext w metodzie onActivityCreate tego fragmentu. Jakie jest najlepsze rozwiązanie? – Maxrunner

10

Najlepszą praktyką jest prawdopodobnie tworzenie interfejsów dla obu fragmentów, a następnie zaimplementowanie interfejsów w działaniu. Chcesz mieć dobre oddzielenie fragmentów, aby móc je ponownie wykorzystać w innych miejscach.

Powiązane problemy