Sobes.tech
Junior — Middle

Ποια μέθοδοι χρησιμοποιούνται για την ανταλλαγή δεδομένων μεταξύ Fragment σε Android;

sobes.tech AI

Απάντηση από AI

Η ανταλλαγή δεδομένων μεταξύ Fragment σε Android μπορεί να υλοποιηθεί με διάφορους τρόπους:

  1. Μέσω Activity — τα fragments επικοινωνούν μέσω μιας γονικής Activity, η οποία λειτουργεί ως μεσάζων. Για παράδειγμα, ένα fragment καλεί μια μέθοδο της Activity περνώντας δεδομένα, και η Activity τα μεταφέρει σε ένα άλλο fragment.

  2. Χρήση ViewModel με τον κύκλο ζωής της Activity — ένα κοινό ViewModel, συνδεδεμένο με την Activity, επιτρέπει στα fragments να ανταλλάσσουν δεδομένα μέσω LiveData.

  3. Χρήση διεπαφών — το fragment ορίζει μια διεπαφή για τη μεταφορά δεδομένων, την οποία υλοποιεί η Activity.

  4. 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 ->
    // επεξεργασία δεδομένων
}