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

Метод remove

Метод remove класса SavedStateHandle убирает значение по ключу. После remove метод get вернёт null для этого ключа.

Синтаксис

handle.remove<String>("label")

Параметры

Параметр Описание
key Ключ, который нужно удалить.

Пример

Давайте очистим ключ и вернём текст по умолчанию:

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: ClearViewModel = viewModel() val text by model.text.collectAsState() Button(onClick = { model.clearLabel() }) { Text(text = "abcde") } Text(text = text) } } } class ClearViewModel( private val handle: SavedStateHandle, ) : ViewModel() { private val _text = MutableStateFlow( handle.get<String>("label") ?: "abcde", ) val text = _text.asStateFlow() fun clearLabel() { handle.remove<String>("label") _text.value = "abcde" } }

На экране после нажатия снова будет "abcde", а ключ label исчезнет из handle.

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

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