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

Функция longPreferencesKey

Функция longPreferencesKey возвращает Preferences.Key для long. Имя задают в name, значение записывают в edit и читают из Preferences.

Синтаксис

val key = longPreferencesKey("abcde")

Параметры

Параметр Описание
name Строковое имя пары в файле prefs.

Пример

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

import android.content.Context import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.longPreferencesKey import androidx.datastore.preferences.preferencesDataStore import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.launch private val Context.dataStore by preferencesDataStore(name = "prefs") class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val key = longPreferencesKey("abcde") lifecycleScope.launch { val snapshot = dataStore.edit { it[key] = 12345L } val res = snapshot[key]?.toString() ?: "abcde" setContent { Text(text = res) } } } }

В prefs сохранится long 12345, на экране будет "12345".

Пример

Давайте прочитаем long без записи:

import android.content.Context import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text import androidx.datastore.preferences.core.longPreferencesKey import androidx.datastore.preferences.preferencesDataStore import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch private val Context.dataStore by preferencesDataStore(name = "prefs") class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val key = longPreferencesKey("12345") lifecycleScope.launch { val snapshot = dataStore.data.first() val res = snapshot[key]?.toString() ?: "abcde" setContent { Text(text = res) } } } }

Если ключа нет, на экране будет "abcde", иначе Text покажет сохранённый long.

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

  • метод putLong,
    аналог записи long в SharedPreferences
  • функция intPreferencesKey,
    которой задают int-ключ
  • функция floatPreferencesKey,
    которой задают float-ключ
  • метод edit,
    куда передают новое значение
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить