Sobes.tech
Junior

Androidda bir faoliyatdan boshqasiga ma'lumotlarni qanday o'tkazish mumkin?

sobes.tech AI

AIdan javob

Ma'lumotlar Intent yordamida uzatish mumkin:

  1. Manba Activityda: Ma'lumotlarni putExtra(String key, value) kabi metodlar yordamida Intentning Extras qismiga joylashtiring.

    // Intentni tayyorlash
    val intent = Intent(this, TargetActivity::class.java)
    // Ma'lumotlarni qo'shish
    intent.putExtra("myString", "Salom birinchi Activitydan")
    intent.putExtra("myInt", 123)
    intent.putExtra("myBool", true)
    // Parcelable yoki Serializable bo'lib, obyektlarni uzatish mumkin
    // intent.putExtra("myObject", myParcelableObject)
    
    // Yangi Activityni ishga tushurish
    startActivity(intent)
    
  2. Ma'lumot oluvchi Activityda: onCreate yoki onNewIntent metodida qabul qilingan Intentdan Extras ma'lumotlarini chiqarib oling.

    // Maqsadli Activityda onCreate() ichida
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_target)
    
        // Bu Activityni ishga tushirgan Intentni oling
        val intent = intent
    
        // Kalit bo'yicha ma'lumotlarni chiqarish
        val myString = intent.getStringExtra("myString")
        val myInt = intent.getIntExtra("myInt", 0) // Ikkinchi argument - standart qiymat
        val myBool = intent.getBooleanExtra("myBool", false)
    
        // Olingan ma'lumotlarni ishlash
        println("Olingan satr: $myString")
        println("Olingan raqam: $myInt")
        println("Olingan boolean: $myBool")
    
        // Parcelable yoki Serializable obyektlar uchun
        // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject")
    }
    

Boshqa ma'lumot uzatish usullari, murakkabroq holatlar yoki katta hajmdagi ma'lumotlar uchun:

  • ViewModel bilan umumiy foydalanish (SharedViewModel orqali): Bog'langan komponentlar o'rtasida umumiy ma'lumotlar uchun qulay.
  • Bundle (Intent Extras ichida): putExtra aslida ichki Bundledan foydalanadi.
  • Statik o'zgaruvchilar/singletonlar: Ehtiyotkorlik bilan foydalanish kerak, ular xotira oqishlariga va holat muammolariga olib kelishi mumkin.
  • Ma'lumotlar bazasi/SharedPreferences: Doimiy saqlash yoki ma'lumotlarni uzatish uchun, saqlash talab qilinadigan holatlar uchun.
  • Event Bus (masalan, EventBus, RxJava): Komponentlar o'rtasida voqealar yoki ma'lumotlarni asinxron tarzda uzatish uchun.
  • File I/O: Faylga yozish va undan o'qish.