Android: boîte de Dialogue etc restaurer après une rotation a changé

Comment restaurer la boîte de dialogue etc après la rotation de l'écran? Par exemple, elle affiche une alertDialog pour dire à l'utilisateur de l'information. ensuite, l'utilisateur de faire pivoter l'écran à une autre orientation. Comment faire pour restaurer l'alertDialog? Quelqu'un peut-il me guider pour le faire? Merci!

Ajouté plus tard:

J'ai regardé dans le code source android et de trouver ces choses:

Les boîtes de dialogue sont stockées dans mManagedDialogs, et l'information est:

mManagedDialogs = new SparseArray<ManagedDialog>();

onSaveInstanceState connexes:

final void performSaveInstanceState(Bundle outState) {
    onSaveInstanceState(outState);
    saveManagedDialogs(outState);
}

Dans saveManagedDialogs, il a quelque chose à voir avec mManagedDialogs.

onRestoreInstanceState connexes:

final void performRestoreInstanceState(Bundle savedInstanceState) {
    onRestoreInstanceState(savedInstanceState);
    restoreManagedDialogs(savedInstanceState);
}

Dans restoreManagedDialogs, il a quelque chose à voir avec mManagedDialogs.

Comme vous pouvez le voir, pour des fonctionnalités avancées, vous devez effectuer la sauvegarde et la restauration de travail par vous-même. Il peut être une nuit mare lorsque vous avez des tonnes de boîtes de dialogue personnalisées. Je n'ai pas essayé le dialogue complexe (a l'entrée EdiText, listView, par exemple). De cette façon, je tiens à avertir les utilisateurs: ne Jamais faire pivoter l'écran lors de l'entrée de votre info dans la boîte de dialogue... OU, verrouillage de la rotation de manière dynamique lors de l'affichage de la boîte de dialogue.

Merci pour toutes les personnes qui m'a répondu. J'espère que mes informations vous aider aussi.

InformationsquelleAutor Henry Sou | 2010-09-11