Junior
145
questionbank
Что можно передать в объект Bundle?
Answer from AI
sobes.tech AI
Примитивные типы данных:
booleanbyteshortintlongfloatdoublecharStringCharSequence
Массивы примитивных типов данных:
boolean[]byte[]short[]int[]long[]float[]double[]char[]String[]CharSequence[]
Объекты, реализующие интерфейсы Parcelable или Serializable.
Списки объектов, реализующих Parcelable или Serializable.
Bundle (то есть можно вкладывать Bundle в Bundle).
Некоторые специальные типы данных Android:
SparseArraySizeSizeFBundle(как упомянуто выше)
Пример сохранения данных в Bundle:
// Сохранение примитивных типов
bundle.putString("name", "Alice")
bundle.putInt("age", 30)
// Сохранение Parcelable объекта (если MyParcelableObject реализует Parcelable)
bundle.putParcelable("user", MyParcelableObject("Alice", 30))
// Сохранение списка Parcelable объектов
val users = arrayListOf(MyParcelableObject("Bob", 25), MyParcelableObject("Charlie", 35))
bundle.putParcelableArrayList("usersList", users)
// Сохранение Serializable объекта (если MySerializableObject реализует Serializable)
bundle.putSerializable("settings", MySerializableObject(true))
// Сохранение Bundle внутри Bundle
val nestedBundle = Bundle()
nestedBundle.putString("extraInfo", "some data")
bundle.putBundle("nested", nestedBundle)
Пример получения данных из Bundle:
// Получение примитивных типов
val name = bundle.getString("name")
val age = bundle.getInt("age", 0) // С значением по умолчанию
// Получение Parcelable объекта
val user = bundle.getParcelable<MyParcelableObject>("user")
// Получение списка Parcelable объектов
val usersList = bundle.getParcelableArrayList<MyParcelableObject>("usersList")
// Получение Serializable объекта
val settings = bundle.getSerializable("settings") as? MySerializableObject
// Получение вложенного Bundle
val nestedBundle = bundle.getBundle("nested")
val extraInfo = nestedBundle?.getString("extraInfo")