W przewodniku dla programistów fragmentów Androida widzę, że „działanie może wywoływać metody we fragmencie, uzyskując odwołanie do fragmentu z FragmentManager przy użyciu findFragmentById()
lub findFragmentByTag()
”.
Poniższy przykład pokazuje, jak uzyskać odwołanie do fragmentu, ale nie jak wywołać określone metody we fragmencie.
Czy ktoś może podać przykład, jak to zrobić? Chciałbym wywołać określoną metodę w fragmencie z działania nadrzędnego. Dzięki.
Jeśli używasz „import android.app.Fragment;” Następnie użyj:
1)
Gdzie R.id.example_fragment to najprawdopodobniej identyfikator FrameLayout w układzie XML. LUB
2)
Gdzie FragTagName to nazwa podana podczas:
Jeśli używasz „import android.support.v4.app.Fragment;” Następnie użyj:
1)
LUB
2)
źródło
Jeśli korzystasz z biblioteki wsparcia, będziesz chciał zrobić coś takiego:
źródło
((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
2. Jeśli używasz fragmentu biblioteki obsługi, wykonaj następujące czynności:
((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
źródło
Myślę, że najlepiej jest sprawdzić, czy fragment jest dodany przed wywołaniem metody we fragmencie. Zrób coś takiego, aby uniknąć zerowego wyjątku.
źródło
Od fragmentu do działania:
Od aktywności do fragmentu:
FragmentManager fm = getSupportFragmentManager ();
Jeśli dodałeś fragment za pomocą kodu i użyłeś ciągu tagu podczas dodawania fragmentu, użyj zamiast tego findFragmentByTag :
źródło
Najpierw tworzysz metodę według własnego
fragment
uznaniaw swoim
activity
dodajesz tododaj
onCreate()
metodęna koniec wywołaj metodę, w której chcesz wywołać add this
wypróbuj ten kod
źródło
źródło
Nie wiem
Java
, ale wC#
(Xamarin.Android) nie ma potrzeby wyszukiwania fragmentu za każdym razem, gdy trzeba wywołać metodę, patrz poniżej:Myślę,
Java
że możesz zrobić to samo.źródło
wywołujesz również metodę fragmentu używając interfejsu takiego jak
najpierw tworzysz interfejs
po utworzeniu interfejsu implementujesz interfejs w swoim fragmencie
i tworzysz odniesienie do interfejsu w swojej działalności
źródło
źródło