Я пытаюсь получить и установить значение listPreference из разных действий, и оно не работает.
Когда я читаю и пишу его из своей основной деятельности, он сохраняет только то, что я пишу, поэтому я предполагаю, что я неправильно нацеливаюсь на listPreference, когда я вне активности, потому что он работает внутри моей активности без проблем.
Я видел несколько ссылок на веб-сайте разработчика на CharSequence с getValue и getEntryValues, но мне также не удалось заставить их работать правильно.
Вот мой код для нажатия кнопки и установки значения listpreference, после чего он запускает намерение переключать действия:
Основное действие, пытающееся установить значение listpreference для первого значения индекса;
SharedPreferences settings = getSharedPreferences("PreferenceXML",
MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("ListPreferenceInXML", "1");
editor.commit();
String levelCheck = settings.getString("ListPreferenceInXML","1");
В моем следующем действии я вызываю чтение значения при запуске, чтобы увидеть, какой listPreference активен, и это всегда число, которое я пишу из основного действия, указанного выше. Проблема заключается в том, что когда я перехожу к фактическому действию Preference, и оно не совпадает или не обновляется, когда я меняю его в ListPreference и запускаю оттуда то же действие (оно по-прежнему считывает значение, которое я установил с помощью кнопки основного действия)
следующий код для активности, пытающейся прочитать ListPreference:
SharedPreferences settings = getSharedPreferences("PreferenceXML",
MODE_PRIVATE);
Toast.makeText(this, settings.getString("ListPreferenceInXML","1"), 1000).show();