Junior
Чӣ гуна метавон маълумотҳоро аз як фаъолият ба дигаре дар Android интиқол дод?
sobes.tech AI
Ҷавоб аз AI
Маълумотҳоро бо истифода аз Intent интиқол додан мумкин аст:
-
Дар Activity-и манбаъ: Маълумотҳоро ба Extras
Intentбо истифода аз усулҳое монандиputExtra(String key, value)гузоред.// Тайёр кардани 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-и ҳадаф: Маълумотҳоро аз Extras
Intent, ки дар методиonCreateёonNewIntentгирифта шудааст, хориҷ кунед.// Дар onCreate()и Activity-и ҳадаф override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_target) // Гирифтани Intent, ки ин Activity-ро оғоз кардааст 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("Boolean-и гирифташуда: $myBool") // Барои объектҳои Parcelable ё Serializable // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject") }
Дигар усулҳои интиқоли маълумот, ки барои сценарияҳои мураккаб ё ҳаҷми калонтар мувофиқанд:
ViewModel-и умумӣ байни Fragmentҳо/Activities (бо истифода аз SharedViewModel): Барои маълумоти умумӣ байни компонентҳои пайваст.Bundle(дар дохили Extras Intent):putExtraдар аслBundle-ро дар дохили истифода мебарад.- Параметрҳои статикӣ/синглтонҳо: Инҳоро бо эҳтиёт истифода бурдан лозим аст, метавонанд ба дарунравии хотира ва мушкилоти ҳолат оварда расонанд.
- Маълумотхои базаи додаҳо/SharedPreferences: Барои нигоҳдории доимӣ ё интиқоли маълумотҳое, ки ниёз ба нигоҳдорӣ доранд.
- Event Bus (масалан, EventBus, RxJava): Барои интиқоли рӯйдодҳо ё маълумот байни компонентҳо дар режими асинхрон.
- File I/O: Дар файл нигоҳ доштан ва аз он хондан.