Функция 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,
куда передают новое значение