Sobes.tech
Junior

Android-də bir fəaliyyətindən digərinə məlumatların necə ötürülməsi?

sobes.tech Süni İntellekt

AI-dan cavab

Məlumatlar Intent istifadə edilərək ötürülə bilər:

  1. Mənbə Activity-də: Məlumatları putExtra(String key, value) kimi metodlarla Intent-in Extras hissəsinə yerləşdirin.

    // Intent hazırlamaq
    val intent = Intent(this, TargetActivity::class.java)
    // Məlumat əlavə etmək
    intent.putExtra("myString", "Salam ilk Activity-dən")
    intent.putExtra("myInt", 123)
    intent.putExtra("myBool", true)
    // Parcelable və ya Serializable tətbiq edən obyektləri də ötürmək olar
    // intent.putExtra("myObject", myParcelableObject)
    
    // Yeni Activity-ni başlatmaq
    startActivity(intent)
    
  2. Hədəf Activity-də: onCreate və ya onNewIntent metodunda alınan Intent-dən Extras məlumatlarını çıxarın.

    // Hədəf Activity-də onCreate() içində
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_target)
    
        // Bu Activity-ni başlatmış Intent-i alın
        val intent = intent
    
        // Açar ilə məlumatları çıxarın
        val myString = intent.getStringExtra("myString")
        val myInt = intent.getIntExtra("myInt", 0) // İkinci arqument standart dəyər
        val myBool = intent.getBooleanExtra("myBool", false)
    
        // Çıxarılmış məlumatları işləyin
        println("Alınan sətir: $myString")
        println("Alınan ədəd: $myInt")
        println("Alınan boolean: $myBool")
    
        // Parcelable və ya Serializable obyektlər üçün
        // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject")
    }
    

Digər məlumat ötürmə metodları, daha mürəkkəb və ya böyük həcmli məlumatlar üçün:

  • ViewModel paylaşımı (SharedViewModel vasitəsilə): Bağlı komponentlər arasında ümumi məlumatlar üçün əlverişlidir.
  • Bundle (Intent Extras daxilində): putExtra daxili olaraq Bundle istifadə edir.
  • Statik dəyişənlər/singletonlar: Diqqətli istifadə edilməlidir, yaddaş sızmalarına və vəziyyət problemlərinə səbəb ola bilər.
  • Verilənlər bazası/SharedPreferences: Daimi saxlama və ya məlumatların ötürülməsi üçün.
  • Event Bus (məsələn, EventBus, RxJava): Asinxron şəkildə komponentlər arasında hadisə və ya məlumatların ötürülməsi üçün.
  • File I/O: Fayla yazma və ondan oxuma.