Mam numer Activity
z wieloma numerami Fragment
. Chcę pokazać DialogFragment
lub otworzyć kolejny Fragment
z jednego z Fragment
. Wiem, że to Activity
powinno być tym, któremu zlecono otwieranie Fragment
s, więc zamiast tego próbowałem kilku rzeczy.Aktywność i interakcja fragmentów
PIERWSZA
Próbowałem użyć getActivity()
i oddać go więc mogę wywołać metodę w Activity
pokazać Fragment
jednak stwarza to zależność w Fragment
z Activity
i chciałbym, aby uniknąć dodawania zależnością Jeśli to możliwe.
DRUGI
Następny Próbowałem słuchacza powiadomić Activity
że powinien pokazać się Fragment
. Stworzyłem więc klasę w Activity
, aby zaimplementować interfejs odbiornika. Ale miałem problemy, ponieważ musiałem użyć New MyActivity().new Listener();
i gdybym spróbował użyć getSupportFragmentManager()
, rzuciłbym getSupportFragmentManager()
, ponieważ to wystąpienie Activity
nie zostało zainicjalizowane.
TRZECI
Potem próbował mieć Activity
zaimplementować słuchacza bezpośrednio która działa, bo wtedy mam tylko tworząc zależność ze słuchaczem, a nie aktywny. Jednak teraz dochodzę do punktu, w którym mój Activity
będzie implementował 2 - 4 różne interfejsy, co powoduje, że jestem niezdecydowany, ponieważ znacznie zmniejszy to spójność.
Tak więc, jakikolwiek sposób próbowałem, wydaje mi się, że wpadam na ceglany mur i tworzę zależności, ale nie jestem pewien, czy muszę to stwarzać. Czy wkręca się i muszę iść z jedną z tych opcji? Jeśli tak, która opcja byłaby najlepsza? Każda pomoc lub sugestie są bardzo mile widziane.
Jest wiele sposobów na zrobienie tego, wolę rzeczy odseparowane, jak to możliwe, a do tego podoba mi się autobus. Zobacz otto, na przykład: http://square.github.io/otto/. (Pozwala pozbyć się całego interfejsu/listwy słuchacza. Przekazywać dane, robić to z silnymi typami, robić to w jasny, zwięzły sposób.) –
Wydaje się obiecujące. Muszę to sprawdzić. Dzięki za wskazówkę. –