In questa documentazione "Communicating with Other Fragments", Google ci dice che la migliore procedura per comunicare attività e frammenti è di implementare un'interfaccia. Questa interfaccia può quindi essere chiamata da Fragment e per eseguire il comportamento necessario in Activity.Android: perché utilizzare un'interfaccia considerata la migliore pratica di comunicazione tra attività e frammento?
Ma c'è anche un modo per farlo. Ottenere direttamente l'attività con il metodo "getActivity()" e quindi è possibile utilizzare tutto il "metodo pubblico" "".
Questo mi confonde parecchio. Perché non potevo davvero pensare ad alcuno svantaggio critico nell'usare il modo Hack per farlo.
Quello che il vantaggio di primo approccio è venuto nella mia testa sono:
- posso limitare la "accessibilità risorsa" sotto la mia attività. Ma poiché Fragment è in grado di chiamare "getActivity()", può effettivamente accedere a tutti i metodi "pubblici" al suo interno. Quindi questo non può davvero convincermi.
- Più leggibile e narrativo nel codice. Con il primo approccio, il codice ci dice che "questa attività apre solo questa specifica area accessibile per il frammento". Possiamo sapere "Cosa all'interno del frammento può interferire con l'attività" direttamente semplicemente guardando il codice nell'attività. Oppure, dovremo aprire il codice sotto Fragment per vedere cosa ha fatto.
Va bene, dopo averli riassunti, ero un po 'convinto da solo. Ma sinceramente, voglio davvero un altro solido e devo ragionare per farlo. Qualsiasi idea o documentazione sarebbe davvero apprezzata !!
[Ci sono molte ragioni per cui dovresti usare le interfacce invece di chiamare solo metodi pubblici.] (Http://java67.blogspot.de/2014/02/what-is-actual-use-of-interface-in- java.html) Basta google per questo. –
@QuentinTsai: hai visto la mia risposta? –
@ZygoteInit Sì! Mi dispiace per la mia risposta in ritardo, mi sono ammalato prima. Ho letto tutte le tue risposte, sono tutte molto utili. Ma scusa potrei dare la risposta giusta a Reinier dato che per me mi ricorda davvero qualcosa che non avevo notato prima. Ringrazia tutti !! –