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

Метод set

Метод set класса SavedStateHandle записывает значение, которое можно восстановить после пересоздания процесса. Ключ и значение передают параметрами.

Синтаксис

handle.set("label", "12345")

Параметры

Параметр Описание
key Строковый ключ.
value Сохраняемое значение. Должно быть совместимо с Bundle.

Пример

Давайте сохраним текст по нажатию кнопки:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewmodel.compose.viewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val model: WriteViewModel = viewModel() val text by model.text.collectAsState() Button(onClick = { model.saveOther() }) { Text(text = "abcde") } Text(text = text) } } } class WriteViewModel( private val handle: SavedStateHandle, ) : ViewModel() { private val _text = MutableStateFlow( handle.get<String>("label") ?: "abcde", ) val text = _text.asStateFlow() fun saveOther() { handle.set("label", "12345") _text.value = "12345" } }

На экране текст сменится на "12345" и ключ label попадёт в handle.

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

  • метод get,
    которым читают сохранённое значение
  • метод remove,
    которым стирают ключ
  • класс SavedStateHandle,
    куда пишет set
  • класс ViewModel,
    который держит handle в конструкторе
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить