Répondre

0

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.