Junior
Androidda bir faoliyatdan boshqasiga ma'lumotlarni qanday o'tkazish mumkin?
sobes.tech AI
AIdan javob
Ma'lumotlar Intent yordamida uzatish mumkin:
-
Manba Activityda: Ma'lumotlarni
putExtra(String key, value)kabi metodlar yordamidaIntentning 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) -
Ma'lumot oluvchi Activityda:
onCreateyokionNewIntentmetodida qabul qilinganIntentdan 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:
ViewModelbilan umumiy foydalanish (SharedViewModel orqali): Bog'langan komponentlar o'rtasida umumiy ma'lumotlar uchun qulay.Bundle(Intent Extras ichida):putExtraaslida ichkiBundledan 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.