Android onDestroyView()方法有什么问题?

Android onDestroyView()方法有什么问题?,android,sharedpreferences,android-ondestroy,Android,Sharedpreferences,Android Ondestroy,在片段被销毁之前,我试图保存pref中的值,但出现了一条错误消息 android.support.v4.app.SuperNotCalledException:片段未调用super.onDestroyView() 这是我的密码 @Override public void onDestroyView() { pref3.edit().clear().commit(); for (int i = 0; i < movies1.size(); i++) { fav

在片段被销毁之前,我试图保存pref中的值,但出现了一条错误消息

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();

    }
}
@覆盖
公共无效onDestroyView(){
pref3.edit().clear().commit();
对于(int i=0;i

当我对循环进行评论时,一切都很好

删除
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();


    }
}
@覆盖
公共无效onDestroyView(){
super.onDestroyView();
pref3.edit().clear().commit();
对于(int i=0;i

希望对你有帮助快乐编码

只需保留
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();
    }
@覆盖
公共无效onDestroyView(){
//还是在这里
pref3.edit().clear().commit();
对于(int i=0;i

解决你的问题。快乐编码

将此行移动到super.onDestroyView();到第一行。您需要从循环中删除“super.onDestroyView();”。