Wpis z mikrobloga

Mam fragment, który posiada pole EditText z ustawioną dzisiejszą datą. Po jego kliknięciu wyświetla mi się DatePickerDialogFragment z możliwością wybrania dowolnej daty. Moje pytanie jest następujące:
Jak 'przesłać' wybraną datę tak aby to było zgodnie ze sztuką?
Odebrać w Activity poprzez "DatePickerDialog.OnDateSetListener" a następnie przekazać do danego fragmentu? Czy może bezpośrednio pomijając Activity?
#androiddev #java #naukaprogramowania
  • 4
@iwannagethigh: Fragment powinien komunikować się z Activity przez określony interfejs, zrobiłbym tak, że w interfejsie dodałbym metodę otwierającą dialog przyjmującą jako parametr listener zdefiniowany we fragmencie. W momencie ustawienia daty listener byłby wywołany przez dialog z Activity, który ustawiłby odpowiednie wartości.
Innymi słowy we fragmencie definiujesz listener, który przekazujesz do DatePickera, on już potem wie co z tym zrobić ;-)
@Dante651: Dzieki za odpowiedź. Czyli nie robić wyjątków i zawsze dane przekazywać najpierw do Activity za pomocą listenera oraz unikać bezpośredniej komunikacji pomiędzy fragmentami nawet w przypadkach kiedy tak byłoby prościej? Dobrze rozumiem?
@iwannagethigh: Komunikacja pomiędzy fragmentami powinna odbywać się przy pośrednictwie Activity. Opcjonalnie możesz użyć biblioteki EventBus, ale do wspomnianych zastosowań opisany sposób powinien być wystarczający.
@iwannagethigh: tak jak mówi @Dante651, też zrobiłbym to na interfejsie wystawiony z aktywności podając jako argument lambde/interfejs której ma zostać wykonany po wybraniu daty. No chyba że piszesz korzystając z prezentera, to oczywiście wszystko przez prezenter ;)