Как загрузить ресурсы с помощью API настроек - PullRequest
0 голосов
/ 28 сентября 2019

У меня проблема с получением сохраненных настроек с помощью API настроек.Я иду по коду с помощью отладчика и вижу, что ключи и значения сохранены, но когда я пытаюсь загрузить их теми же ключами, которые были сохранены, они загружаются со значениями по умолчанию, другими словами, сохраненные записи не могут быть найдены.Я инициализирую объект Prefferences:

Preferences root = Preferences.userRoot();
Preferences node = root.node("/com/insilicokdd/operational_mode");

node.putInt("predictiveListSize", predictiveList.size());
node.putInt("diagnosisListSize", diagnosisList.size());

После этого я сохраняю ключи от метода объекта put узла в этом случае putInt().В приведенных выше двух строках кода я иду по коду с помощью отладчика и вижу, что они сохранены правильно.

predictiveListSize = node.getInt("predictiveListSize", 0);
diagnosisListSize = node.getInt("diagnosisListSize", 0);

Но когда я запускаю свое приложение и пытаюсь получить значения, я получаю значения по умолчанию.Как правильно сохранить и восстановить значения.Также я сохраняю значения из ловушки отключения при выходе из приложения, если это важно для вопроса.Я попытался следовать подходу из этого вопроса Как сохранить предпочтения пользовательских настроек в Java? для установки пути для узла:

Preferences node = Preferences.userNodeForPackage(com.insilicokdd.operational_mode.SelectionPanel.class);

Опять безуспешно.Я на самом деле сужаю свою проблему до «не могу получить ключи с числовыми значениями», я успешно получил строковые значения.Спасибо за любую помощь заранее.

1 Ответ

1 голос
/ 28 сентября 2019

ссылки хранятся логически в дереве.Объект предпочтений - это узел в дереве, расположенный по уникальному пути.Вы можете думать о предпочтениях как о файлах в структуре каталогов;внутри файла хранятся одна или несколько пар имя / значение.Чтобы сохранить или получить элементы, вы запрашиваете объект предпочтений для правильного пути.Вот пример;мы вскоре объясним поиск узла:

Preferences prefs = Preferences.userRoot().node("oreilly/learningjava");

prefs.put("author", "Niemeyer");
prefs.putInt("edition", 4);

String author = prefs.get("author", "unknown");
int edition = prefs.getInt("edition", -1);

Метод node () принимает относительный или абсолютный путь.Относительный путь просит узел найти путь относительно себя в качестве базы.Мы также могли бы получить наш узел следующим образом:

Preferences prefs =
   Preferences.userRoot().node("oreilly").node("learningjava");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...