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

Класс SharedPreferences

Класс SharedPreferences держит настройки в xml-файле приложения. Экземпляр получают через метод getSharedPreferences у Context, имя файла задают строкой, например "prefs". Чтение идёт методами getString и похожими, запись - через SharedPreferences.Editor после edit.

Синтаксис

val prefs = context.getSharedPreferences("prefs", MODE_PRIVATE) val value = prefs.getString("abcde", "")

Методы

Метод Описание
getString Читает строку по ключу или значение по умолчанию, если ключа нет.
getInt Читает целое число по ключу.
getLong Читает long по ключу.
getBoolean Читает логическое значение по ключу.
contains Проверяет, есть ли ключ в файле.
edit Открывает редактор для записи и удаления пар ключ-значение.

Пример

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

import android.content.Context 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 prefs = getSharedPreferences("prefs", MODE_PRIVATE) prefs.edit().putString("abcde", "12345").apply() val res = prefs.getString("abcde", "") setContent { Text(text = res ?: "") } } }

В файле "prefs" появится пара "abcde" и "12345", на экране в Text будет "12345".

Пример

Давайте проверим ключ через contains:

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 prefs = getSharedPreferences("prefs", MODE_PRIVATE) prefs.edit().putString("abcde", "12345").apply() val res = prefs.contains("abcde") setContent { Text(text = if (res) "12345" else "abcde") } } }

После записи contains вернёт true, на экране в Text будет "12345".

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

  • класс SharedPreferences.Editor,
    которым пишут изменения на диск
  • метод getSharedPreferences,
    которым открывают файл настроек
  • функция preferencesDataStore,
    которая задаёт DataStore вместо xml
  • класс DataStore,
    который хранит Preferences асинхронно
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить