Junior
Барои чӣ синфи Bundle дар Android истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Bundle, ки барои интиқоли маълумот байни компонентҳои барнома, мисли Activity, Fragment ё Service истифода мешавад.
Функсияҳои асосӣ:
- Захира кардани маълумот: Мумкин аст, ки намудҳои гуногуни маълумоти primitives (int, boolean, String ва ғайра), массивҳои primitives, инчунин объектҳои Parcelable ё Serializable-ро дар бар гирад.
- Ключ-ҳолат: Маълумотҳо дар шакли ҷуфтҳои клуч-ҳолат, ки клуч як сатр аст, нигоҳ дошта мешаванд.
- Захира кардани ҳолат: Барои нигоҳ доштани ва барқарор кардани ҳолати Activity (масалан, дар методҳои
onSaveInstanceState()ваonRestoreInstanceState()) истифода мешавад. - Аргументҳои Fragment: Барои гузаронидани аргументҳо ба Fragment тавассути методи
setArguments()истифода мешавад. - Маълумоти иловагӣ дар Intent: Имкон медиҳад, ки маълумоти иловагӣ дар Intent тавассути методҳои
putExtra()ваgetExtras()гузаронида шаванд.
Маслиҳат барои истифода барои гузаронидани маълумот байни Activity:
// Иҷрои маълумот аз Activity A ба Activity B
val intent = Intent(this, ActivityB::class.java)
val bundle = Bundle()
bundle.putString("username", "john.doe")
bundle.putInt("age", 30)
intent.putExtras(bundle)
startActivity(intent)
// Гирифтани маълумот дар Activity B
val extras = intent.extras
if (extras != null) {
val username = extras.getString("username")
val age = extras.getInt("age", -1) // Қимати пешфарз
}