Junior
Androidда бир активитиден экинчи активитиге маалыматтарды кантип өткөрүү керек?
sobes.tech AI
AIден жооп
Маълумотту Intent аркылуу өткөрүү мүмкүн:
-
Баштапкы Activityте: Маалыматты
putExtra(String key, value)аркылуу ExtrasIntentке салыңыз.// Intentти даярдоо val intent = Intent(this, TargetActivity::class.java) // Маалыматты кошуу intent.putExtra("myString", "Биринчи Activityден салам") intent.putExtra("myInt", 123) intent.putExtra("myBool", true) // Parcelable же Serializable иштеткен объекттерди өткөрсө болот // intent.putExtra("myObject", myParcelableObject) // Жаңы Activityти иштетүү startActivity(intent) -
Максаттуу Activityте:
onCreateжеonNewIntentметодунда алынган ExtrasIntentтен маалыматтарды чыгарыңыз.// Максаттуу Activityтин onCreate()сында override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_target) // Бул Activityти иштеткен Intentти алыңыз val intent = intent // Ключ боюнча маалыматтарды чыгарыңыз val myString = intent.getStringExtra("myString") val myInt = intent.getIntExtra("myInt", 0) // Экинчи аргумент - алдын ала коюлган мааниси val myBool = intent.getBooleanExtra("myBool", false) // Алынган маалыматтарды иштетүү println("Алып келген сап: $myString") println("Алып келген сан: $myInt") println("Алып келген булево: $myBool") // Parcelable же Serializable объекттери үчүн // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject") }
Башка маалымат өткөрүү ыкмалары, көбүрөөк сценарийлер же чоң көлөмдөгү маалыматтар үчүн ылайыктуу:
ViewModelменен бөлүшүү (SharedViewModel аркылуу): Байланышкан компоненттердин ортосунда жалпы маалымат үчүн ыңгайлуу.Bundle(ExtrasIntentичинде):putExtraчынжырдаBundleколдонулат.- Статикалык өзгөрмөлөр/синглтондар: Эскертүү менен колдонуу керек, эс тутумду агызуу жана абал маселелерин алып келиши мүмкүн.
- Маалымат базасы/SharedPreferences: Туруктуу сактоо же өткөрүү үчүн, сакталуучу маалыматтар үчүн.
- Event Bus (мисалы, EventBus, RxJava): Окуялар же маалыматтарды асинхрон түрдө өткөрүү үчүн.
- Файлдык I/O: Файлга сактоо жана андан окуу.