Sobes.tech
Middle

Fəaliyyət və fragment arasında qarşılıqlı əlaqəni necə təşkil etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də Activity və fragment arasında qarşılıqlı əlaqəni bir neçə üsul ilə təşkil etmək mümkündür:

  1. İnterfeys vasitəsilə. Fragment geri çağırma metodları olan interfeys elan edir və Activity bunu həyata keçirir. Fragment bu metodları çağıraraq məlumat və ya hadisələri Activity-ə ötürür.
class MyFragment : Fragment() {
    interface OnDataPass {
        fun onDataPass(data: String)
    }

    private lateinit var dataPasser: OnDataPass

    override fun onAttach(context: Context) {
        super.onAttach(context)
        dataPasser = context as OnDataPass
    }

    fun passData(data: String) {
        dataPasser.onDataPass(data)
    }
}

class MyActivity : AppCompatActivity(), MyFragment.OnDataPass {
    override fun onDataPass(data: String) {
        // Fragment-dən gələn məlumatların işlənməsi
    }
}
  1. ViewModel-dən istifadə və Activity-nin həyat dövrü ilə. Paylaşılan ViewModel Activity və fragment arasında LiveData vasitəsilə məlumat mübadiləsinə imkan verir.
class SharedViewModel : ViewModel() {
    val data = MutableLiveData<String>()
}

// Activity və fragment-də
val model = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)

// Fragment məlumatları yeniləyir
model.data.value = "Yeni dəyər"

// Activity dəyişiklikləri izləyir
model.data.observe(this) { value ->
    // Dəyərin işlənməsi
}
  1. EventBus istifadə (məsələn, Otto, EventBus) — hadisələrin yayım-abunəlik modeli.

  2. Fragment yaradılarkən Bundle vasitəsilə arqumentlərin ötürülməsi — Activity-dən fragment-ə məlumat ötürmək üçün.

Yöntəm seçimi və tətbiqin memarlığından asılıdır.