web-dev-qa-db-fra.com

Pouvez-vous déclencher un événement lorsque Android Dialog est licencié?

Dites que j'ai créé une boîte de dialogue dans mon application Android comme ceci:

private static ProgressDialog dialog;
dialog = ProgressDialog.show(MainActivity.this, "", "Downloading Files. Please wait...", true);

Maintenant, est-il possible de déclencher un événement lorsque la suivante est appelée?

dialog.dismiss();

La raison pour laquelle je veux faire cela et pas seulement appeler ma méthode après dialog.dismiss(); est parce que le dialogue Dialog est appelé dans une classe statique et que la prochaine chose que je veux faire est de charger une nouvelle activité (ce qui ne peut pas être fait avec Intents dans une classe statique. ).

27
ingh.am

Utilisez un OnDismissListener .

Il existe une méthode setOnDismissListener(...) dans la classe Dialog

50
Aleadam

Bien sûr, vous pouvez - vérifier:

  public void onDismiss(DialogInterface dialogInterface)
  {
        //Fire event
  }
5
barmaley

Chaque fois qu'une boîte de dialogue est fermée en cliquant sur PositiveButton, NegativeButton, NeturalButton ou en cliquant en dehors de la boîte de dialogue, "onDismiss" est toujours appelé automatiquement.

@Override
public void onDismiss(DialogInterface dialogInterface) {
    ...
}

Vous n'avez même pas besoin d'appeler la méthode licencier ().

4
Rahim

Utilisez la méthode setOnDismissListener pour la boîte de dialogue.

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {
        if (mIsSettingsDirty)
            refreshRecyclerView();
    }
});
0
live-love