Суббота, 2017-11-25, 5:17 PM

Поиск
Меню
Категории раздела
Поддержи проект!
Рекомендуем


Работа с настройками предпочтения

Предпочтения (Preferences) являются простым путем хранения небольших данных приложения, например пользовательских настроек, сохранений в игре и так далее. Предпочтения работают подобно хэш-таблице, используя строку как ключи и различные базовые типы данных в роли значений. Предпочтения также являются единственным на сегодняшний день способом хранения постоянных данных, даже когда приложение работает в браузере.


Получение экземпляра класса Preferences

Preferences можно получить с помощью следующего фрагмента кода:

Preferences prefs =Gdx.app.getPreferences("My Preferences");

Обратите внимание, что ваше приложение может иметь несколько предпочтений, просто дайте им разные имена.


Запись и чтение значений

Изменение настроек предпочтений так же просто, как работа с Java Map:

prefs.putString("name", "Donald Duck");
String name = prefs.getString("name", "No name stored");

prefs.putBoolean("soundOn", true);
prefs.putInteger("highscore", 10);

Обратите внимание, что методы получения значений идут в двух вариантах: с учетом и без учета значения по умолчанию. Значение по умолчанию будет возращено если значения для указанного ключа нет в настройках предпочтений.


Сохранение значений

Изменения в экземпляре Preferences будут сохранены только при явным вызове метода flush().

// изменение ваших настроек предпочтений
prefs.flush();

Хранилище настроек

В Windows, Linux и OS X, настройки сохраняются в XML-файл в домашнем каталоге пользователя.

OSМестоположение хранилища предпочтений
Windows%Профиль_Пользователя%/.prefs/My Preferences
Linux и OS X~/.prefs/My Preferences

Этот файл называется также, как значение аргумента в методе Gdx.app.getPreferences().

Это полезно знать, если вы хотите изменить или удалить их вручную для тестирования.

На платформе Android используется системный класс SharedPreferences. Это означает, что настройки предпочтений останутся при обновлении приложения, но удаляются при удалении приложения.