SharedPreferences в действиях, возвращающих нуль внутри дочернего фрагмента - PullRequest
0 голосов
/ 27 февраля 2019

Эй, ребята, я пытаюсь сохранить некоторую информацию SharedPreferences в моей основной деятельности.Но когда я получаю доступ к той же информации внутри дочернего фрагмента другого действия, он возвращает ноль.

Это то, что я делаю Основная деятельность

SharedPreferences sharedPreferences = getApplication().getSharedPreferences("UserDataInitially", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();   
 editor.putString("UserSearch",skill_set);
 editor.apply();
 editor.commit();

Теперь, когда я получаю доступ к SharedPreferences в OnCreate другого действияметод, они возвращают значения

MainActivityUser

    String skill_set;
    SharedPreferences UserDataInitially = getApplication().getSharedPreferences("UserDataInitially", Context.MODE_PRIVATE);
    skill_set = UserDataInitially.getString("UserSearch","");

но внутри дочернего фрагмента MainActivityUser

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);

        SharedPreferences UserDataInitially= getContext().getSharedPreferences("UserDataInitially", Context.MODE_PRIVATE);
      skill_set = UserDataInitially.getString("UserSearch","");
      // Here skill_set is null
    }
}

1 Ответ

0 голосов
/ 27 февраля 2019

это должно работать, потому что вы используете другой контекст

 private void saveString(String key, String value) {
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.apply();
}

private String getString(String key, String defaultValue) {
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
    return sharedPreferences.getString(key, defaultValue);
}

см. getDefaultSharedPreferences ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...