Junior — Middle
Ποια μέθοδοι χρησιμοποιούνται για την ανταλλαγή δεδομένων μεταξύ Fragment σε Android;
sobes.tech AI
Απάντηση από AI
Η ανταλλαγή δεδομένων μεταξύ Fragment σε Android μπορεί να υλοποιηθεί με διάφορους τρόπους:
-
Μέσω Activity — τα fragments επικοινωνούν μέσω μιας γονικής Activity, η οποία λειτουργεί ως μεσάζων. Για παράδειγμα, ένα fragment καλεί μια μέθοδο της Activity περνώντας δεδομένα, και η Activity τα μεταφέρει σε ένα άλλο fragment.
-
Χρήση ViewModel με τον κύκλο ζωής της Activity — ένα κοινό ViewModel, συνδεδεμένο με την Activity, επιτρέπει στα fragments να ανταλλάσσουν δεδομένα μέσω LiveData.
-
Χρήση διεπαφών — το fragment ορίζει μια διεπαφή για τη μεταφορά δεδομένων, την οποία υλοποιεί η Activity.
-
EventBus ή άλλες βιβλιοθήκες γεγονότων — επιτρέπουν την αποστολή γεγονότων μεταξύ συστατικών.
Παράδειγμα με ViewModel:
class SharedViewModel : ViewModel() {
val selected = MutableLiveData<String>()
fun select(item: String) {
selected.value = item
}
}
// Στο Fragment A
viewModel.select("Δεδομένα")
// Στο Fragment B
viewModel.selected.observe(viewLifecycleOwner) { data ->
// επεξεργασία δεδομένων
}