Merge "Fix issue #3400255 Dialog fragments crash on rotation in Settings app" into honeycomb

This commit is contained in:
Dianne Hackborn
2011-01-27 23:19:13 -08:00
committed by Android (Google) Code Review

View 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);
}