Настройки предпочтения

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

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

Получение экземпляра 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);

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

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

Изменения в 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 класс. Это означает, что настройки предпочтений останутся при обновлении приложения, но удаляются при удалении приложения.