Класс 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 асинхронно