получить и установить listPreference из другого действия, которое не работает

Я пытаюсь получить и установить значение 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();

person Toclmi    schedule 26.05.2011    source источник


Ответы (1)


Итак, я наконец понял, проблема была в том, как я называл настройки. Вместо того, чтобы вызывать настройки таким образом, в обоих случаях;

   SharedPreferences settings = getSharedPreferences("PreferenceXML", 
            MODE_PRIVATE);

Назовите их так:

   SharedPreferences settings = 
        PreferenceManager.getDefaultSharedPreferences(getBaseContext());

Я не уверен, что в первом способе вызова настроек отсутствует какой-либо шаг, но этот второй способ работал как чемпион.

person Toclmi    schedule 28.05.2011