Sobes.tech
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) // Қимати пешфарз
}