Что не так с методом onDestroyView ()? - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь сохранить значения в своем префе до того, как фрагмент будет уничтожен, но в сообщении об ошибке написано

android.support.v4.app.SuperNotCalledException: фрагмент не обращался к super.onDestroyView ()

вот мой код

@Override
public void onDestroyView() {
    pref3.edit().clear().commit();
    for (int i = 0; i < movies1.size(); i++) {
        favouritemovies1.add(movies1.get(i));
        SharedPreferences.Editor editor3 = pref3.edit();
        editor3.putStringSet("favouritemovies", favouritemovies1);
        editor3.commit();
        Toast.makeText(getActivity(), "destroyed", Toast.LENGTH_SHORT).show();
        super.onDestroyView();

    }
}

, когда я комментирую цикл, все работает нормально!

Ответы [ 2 ]

2 голосов
/ 21 сентября 2019

Просто держите super.onDestroyView(); вне цикла for и внутри метода @Override следующим образом: -

   @Override
    public void onDestroyView() {
        // or here 
        pref3.edit().clear().commit();
        for (int i = 0; i < movies1.size(); i++) {
            favouritemovies1.add(movies1.get(i));
            SharedPreferences.Editor editor3 = pref3.edit();
            editor3.putStringSet("favouritemovies", favouritemovies1);
            editor3.commit();
            Toast.makeText(getActivity(), "destroyed", Toast.LENGTH_SHORT).show();

        }
        super.onDestroyView();
    }

Решает вашу проблему.счастливое кодирование

2 голосов
/ 21 сентября 2019

Удалите super.onDestroyView(); из цикла и запишите его сверху, как показано ниже.

@Override
public void onDestroyView() {
    super.onDestroyView();
    pref3.edit().clear().commit();
    for (int i = 0; i < movies1.size(); i++) {
        favouritemovies1.add(movies1.get(i));
        SharedPreferences.Editor editor3 = pref3.edit();
        editor3.putStringSet("favouritemovies", favouritemovies1);
        editor3.commit();
        Toast.makeText(getActivity(), "destroyed", Toast.LENGTH_SHORT).show();


    }
}

Надеюсь, это поможет вам. Счастливое кодирование

...