OSDN Git Service

Fix issue #3400255 Dialog fragments crash on rotation in Settings app
authorDianne Hackborn <hackbod@google.com>
Fri, 28 Jan 2011 04:39:21 +0000 (20:39 -0800)
committerDianne Hackborn <hackbod@google.com>
Fri, 28 Jan 2011 04:39:21 +0000 (20:39 -0800)
Change-Id: I337c1fb41e3fbedd7982418df497487481bb35d2

src/com/android/settings/SettingsPreferenceFragment.java

index dd078ba..77f703c 100644 (file)
@@ -161,7 +161,16 @@ public class SettingsPreferenceFragment extends PreferenceFragment
         }
 
         @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
+        public void onSaveInstanceState(Bundle outState) {
+            super.onSaveInstanceState(outState);
+            if (mParentFragment != null) {
+                outState.putInt(KEY_DIALOG_ID, mDialogId);
+                outState.putInt(KEY_PARENT_FRAGMENT_ID, mParentFragment.getId());
+            }
+        }
+
+        @Override
+        public Dialog onCreateDialog(Bundle savedInstanceState) {
             if (savedInstanceState != null) {
                 mDialogId = savedInstanceState.getInt(KEY_DIALOG_ID, 0);
                 int mParentFragmentId = savedInstanceState.getInt(KEY_PARENT_FRAGMENT_ID, -1);
@@ -174,20 +183,6 @@ public class SettingsPreferenceFragment extends PreferenceFragment
                     }
                 }
             }
-            super.onActivityCreated(savedInstanceState);
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-            if (mParentFragment != null) {
-                outState.putInt(KEY_DIALOG_ID, mDialogId);
-                outState.putInt(KEY_PARENT_FRAGMENT_ID, mParentFragment.getId());
-            }
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
             return ((DialogCreatable) mParentFragment).onCreateDialog(mDialogId);
         }