Je voulais accéder à l'activité des parents à l'intérieur du AlertDialog
« méthode de onClick()
mais ne voulait pas maintenir une référence d'activité parce que mes AlertDialog
» s gestionnaire onClick()
est dans un autre fichier. Pour l'API 23 et plus récent, voici ce qui a fonctionné pour moi:
Dans l'activité où AlertDialog.Builder est appelée j'ai ajouté ceci:
dialog.setOwnerActivity(this);
dialog.show();
.....
Je passe alors mon constructeur à une autre classe. Donc, dans cette classe séparée qui implémente DialogInterface.OnClickListener:
@Override
public void onClick(DialogInterface dialogInterface, int which) {
Dialog dialog = (Dialog) dialogInterface;
Activity activity = dialog.getOwnerActivity();
// do some work with activity
}
};
Cela fonctionne avec tous les auditeurs de DialogInterface.
L'accusé de réception va à this answer par @petey pour m'avoir indiqué dans la bonne direction.