Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
305 of 502 menu
◀ ▶

Класс Bundle

Класс Bundle переносит данные между компонентами: extras у Intent, аргументы фрагментов, savedInstanceState. Строки и числа кладут через putString и putInt, читают через getString и getInt. Объект должен оставаться небольшим, иначе возможен TransactionTooLargeException.

Синтаксис

val bundle = Bundle() bundle.putString("note", "abcde")

Методы

Метод Описание
putString Записывает строку по ключу.
getString Читает строку по ключу или null.
putInt Записывает целое число по ключу.
getInt Читает Int по ключу с defaultValue.
putBoolean Записывает логическое значение по ключу.
getBoolean Читает Boolean по ключу с defaultValue.

Пример

Давайте соберём bundle и положим в intent:

import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val bundle = Bundle().apply { putString("note", "12345") putInt("count", 2) } val intent = Intent(this@MainActivity, SecondActivity::class.java) intent.putExtras(bundle) startActivity(intent) }) { Text(text = "abcde") } } } }

На экране кнопка передаст bundle с note и count на SecondActivity.

Пример

Давайте прочитаем bundle из savedInstanceState:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val note = savedInstanceState?.getString("note") ?: "abcde" setContent { Text(text = note) } } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putString("note", "12345") } }

На экране после поворота будет текст "12345" из сохранённого bundle, до поворота - "abcde".

Смотрите также

  • класс Intent,
    куда кладут extras через putExtra
  • метод putExtra,
    запись в extras intent без ручного Bundle
  • метод putString,
    запись строк в bundle
  • метод onCreate,
    куда приходит savedInstanceState
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить