Использование SharedPreferences в Android

В Android SharedPreferences обычно используется для хранения небольших данных, таких как настройки пользователя, параметры приложения или данные сессии. Он позволяет хранить пары "ключ-значение" для различных типов данных, таких как String, int, boolean, float и long.

Вот как использовать SharedPreferences для сохранения, получения и редактирования значений в Android:

1. Сохранение значений в SharedPreferences

Чтобы сохранить данные в SharedPreferences, нужно получить его экземпляр и использовать Editor для записи изменений.

// Шаг 1: Получаем экземпляр SharedPreferences
val sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE)

// Шаг 2: Получаем SharedPreferences Editor для внесения изменений
val editor = sharedPreferences.edit()

// Шаг 3: Сохраняем значения
editor.putString("key_string", "Hello, World!")
editor.putInt("key_int", 42)
editor.putBoolean("key_boolean", true)

// Шаг 4: Применяем или сохраняем изменения
editor.apply()  // Асинхронно сохраняет изменения
// или
// editor.commit()  // Синхронно сохраняет изменения (рекомендуется для немедленного сохранения)
  • apply(): Сохраняет данные в фоновом потоке, что быстрее и не блокирует главный поток.
  • commit(): Мгновенно записывает данные в хранилище, но блокирует поток до завершения записи.

2. Получение значений из SharedPreferences

Чтобы получить данные из SharedPreferences, используются методы get, в которые передается ключ и значение по умолчанию на случай, если ключ не существует.

// Шаг 1: Получаем экземпляр SharedPreferences
val sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE)

// Шаг 2: Получаем значения по ключу
val savedString = sharedPreferences.getString("key_string", "Default Value")
val savedInt = sharedPreferences.getInt("key_int", 0)
val savedBoolean = sharedPreferences.getBoolean("key_boolean", false)

// Используем полученные значения
println("String: $savedString, Int: $savedInt, Boolean: $savedBoolean")

Значения по умолчанию: Второй аргумент в методах get — это значение по умолчанию, которое возвращается, если ключ не существует.

3. Редактирование существующих значений в SharedPreferences

Чтобы изменить существующее значение, следуйте тому же процессу, что и при сохранении. Новое значение перезапишет предыдущее, связанное с тем же ключом.

// Шаг 1: Получаем SharedPreferences Editor для редактирования значений
val editor = sharedPreferences.edit()

// Шаг 2: Редактируем значения
editor.putString("key_string", "New Value")

// Шаг 3: Применяем или сохраняем изменения
editor.apply()

4. Удаление значений из SharedPreferences

Если необходимо удалить конкретное значение или очистить все данные:

Чтобы удалить конкретное значение:

val editor = sharedPreferences.edit()
editor.remove("key_string")
editor.apply()  // Или editor.commit()

Чтобы удалить все значения:

val editor = sharedPreferences.edit()
editor.clear()
editor.apply()  // Или editor.commit()

Резюме

  • Для сохранения значений: Используйте методы put<Type>() с apply() или commit().
  • Для получения значений: Используйте методы get<Type>() с указанием значения по умолчанию.
  • Для редактирования значений: Просто перезапишите их с помощью put<Type>().
  • Для удаления значений: Используйте remove() или clear().