private void restoreManagedDialogs(android.os.Bundle savedInstanceState) { android.os.Bundle b = savedInstanceState.getBundle(SAVED_DIALOGS_TAG); if (b == null) { return; } int[] ids = b.getIntArray(SAVED_DIALOG_IDS_KEY); int numDialogs = ids.Length; mManagedDialogs = new android.util.SparseArray<android.app.Activity.ManagedDialog >(numDialogs); { for (int i = 0; i < numDialogs; i++) { int dialogId = ids[i]; android.os.Bundle dialogState = b.getBundle(savedDialogKeyFor(dialogId)); if (dialogState != null) { android.app.Activity.ManagedDialog md = new android.app.Activity.ManagedDialog(); md.mArgs = b.getBundle(savedDialogArgsKeyFor(dialogId)); md.mDialog = createDialog(dialogId, dialogState, md.mArgs); if (md.mDialog != null) { mManagedDialogs.put(dialogId, md); onPrepareDialog(dialogId, md.mDialog, md.mArgs); md.mDialog.onRestoreInstanceState(dialogState); } } } } }
public bool showDialog(int id, android.os.Bundle args) { if (mManagedDialogs == null) { mManagedDialogs = new android.util.SparseArray<android.app.Activity.ManagedDialog >(); } android.app.Activity.ManagedDialog md = mManagedDialogs.get(id); if (md == null) { md = new android.app.Activity.ManagedDialog(); md.mDialog = createDialog(id, null, args); if (md.mDialog == null) { return false; } mManagedDialogs.put(id, md); } md.mArgs = args; onPrepareDialog(id, md.mDialog, args); md.mDialog.show(); return true; }