Aussi loin que je peux dire, il y a deux moyens pour afficher une boîte de Dialogue à partir d'une Activité.
- Créer la boîte de Dialogue (par exemple, à l'aide d'un
AlertDialog.Builder
), puis d'appeler la fonction nouvellement créée de la boîte de Dialogueshow()
méthode. - Appel de l'Activité, en
showDialog()
méthode, en passant dans un int qui fait la particularité de ce genre de Dialogue que vous voulez construire. Ensuite remplacer l'onCreateDialog()
de réellement construire le Dialogue, et Android affichera pour vous.
La seconde méthode semble être la norme, mais je suis curieux de savoir si il n'y a aucune raison que cela fait une différence que j'utilise. Voici tout ce que je peux venir avec:
Raisons de l'utilisation d' Dialog.show
- Si vous avez besoin de paramétrer la boîte de Dialogue d'une certaine façon, il peut être un peu difficile à utiliser
Activity.showDialog
, comme décrit dans cette question. Vous pourriez avoir à stocker une Chaîne ou quelque chose dans une variable membre, juste pour qu'il puisse être récupéré quelques instants plus tard, lors d'onCreateDialog
ouonPrepareDialog
. - La logique de la création et de la modification de la boîte de dialogue est répartie sur un certain nombre d'endroits, ce qui pourrait le rendre le code plus difficile à lire et à maintenir:
- L'endroit où vous vous appelez
showDialog()
- À l'intérieur d'un large
switch
énoncé dans le substituéeonCreateDialog
méthode - À l'intérieur d'un large
switch
énoncé dans le substituéeonPrepareDialog
méthode
- L'endroit où vous vous appelez
Raisons de l'utilisation d' Activity.showDialog
:
- L'API docs pour
Activity.showDialog
- dire que le Dialogue est "géré" par l'Activité qui, je suppose, offre certains avantages? Mais cela est également vrai si vous utilisez l'AlertDialog.Builder
, je pense, parce que vous passez enthis
en argument du Constructeur constructeur. - Si votre Activité est va vous montrer le même (ou très similaire) Dialogue à plusieurs reprises, cette option crée qu'une seule fois, au lieu d'en créer un nouveau à chaque fois, ainsi, de mettre moins de pression sur le système de mesure d'allouer de l'espace pour de nouveaux objets, de la collecte des ordures, etc.
Donc ma question est, quels sont les critères pour décider quand utiliser Activity.showDialog
et quand utiliser Dialog.show
, et pourquoi?