Pouvez-vous déclencher un événement lorsque la boîte de dialogue Android est rejetée?

Dire 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 ce qui suit est appelé?

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 dismiss est appelé dans une classe statique et la prochaine chose que je veux faire est de charger une nouvelle activité (ce qui ne peut pas être fait en utilisant Intents dans une classe statique).

23
demandé sur ingh.am 2011-06-01 19:29:04

4 réponses

Utilisez un OnDismissListener .

Il est un setOnDismissListener(...) méthode dans la classe Dialog

48
répondu Aleadam 2015-12-07 18:41:02

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

  public void onDismiss(DialogInterface dialogInterface)
  {
        //Fire event
  }
5
répondu barmaley 2011-06-01 15:35:20

Chaque fois qu'une boîte de dialogue est fermée soit en cliquant sur PositiveButton, NegativeButton, NeturalButton ou en cliquant en dehors de la boîte de dialogue, "onDismiss" est toujours appelé automatiquement alors faites vos trucs dans la méthode onDismiss () par exemple,

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

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

4
répondu Rahim 2013-05-05 16:42:38

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
répondu live-love 2018-06-03 04:26:36