Не могу прочитать SharedPreferences

Я сохраняю некоторые значения в моем PreferencesFragment таким образом:

// SharedPreferences prefs = getActivity().getSharedPreferences("Test", 0);
SharedPreferences prefs = getPreferenceScreen().getSharedPreferences();

SharedPreferences.Editor edit = prefs.edit();

edit.putInt(getString(R.string.valOneKey), 100);
edit.putInt(getString(R.string.valTwoKey), 200);
edit.commit();

Затем я хочу прочитать настройки в неактивном классе:

// SharedPreferences prefs = ActivityHandler.getCurrentActivity().getSharedPreferences("Test", 0);
SharedPreferences prefs = ActivityHandler.getCurrentActivity().getPreferences(0);

int valOne = prefs.getInt(ActivityHandler.getCurrentActivity().getString(R.string.valOneKey), 0);
int valTwo = prefs.getInt(ActivityHandler.getCurrentActivity().getString(R.string.valTwoKey), 0);

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

2 ответа

Решение

Попробуй это

Магазин с SharedPreferences

SharedPreferences sharedPref = getSharedPreferences("my_pref", Context.MODE_MULTI_PROCESS);

Editor editor = sharedPref.edit();
editor.putInt("KEY", VAL);
..
..
editor.commit();

Получить из SharedPreferences

SharedPreferences sharedPref = getSharedPreferences(
                "my_pref", Context.MODE_MULTI_PROCESS);
int size = sharedPref.getInt("KEY", default_VAL);

Это будет полезно... спасибо

Вы делаете это не правильно. Каждый раз вы получаете разные общие предпочтения. Используйте этот код:

Для хранения значения:

SharedPreferences prefs = getActivity().getSharedPreferences("Test", 0);
SharedPreferences.Editor edit = prefs.edit();

edit.putInt(getString(R.string.valOneKey), 100);
edit.putInt(getString(R.string.valTwoKey), 200);
edit.commit();

Для получения значения:

SharedPreferences prefs = getActivity().getSharedPreferences("Test", 0);
int valOne = prefs.getInt(ActivityHandler.getCurrentActivity().getString(R.string.valOneKey), 0);
int valTwo = prefs.getInt(ActivityHandler.getCurrentActivity().getString(R.string.valTwoKey), 0);

Надеюсь, что это поможет вам.

Другие вопросы по тегам