2011-07-22 6 views
0

J'ai un problème avec un AlertDialog: Je voudrais que mon AlertDialog renvoie true si l'utilisateur clique sur le bouton Positive et false s'il clique sur le bouton négatif. La fonction doit bloquer le programme jusqu'à ce que l'utilisateur clique sur un bouton.[Android] Alertdialog return boolean onclick

Mon code:

public static boolean errorMD5(Context context){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    builder.setTitle(context.getString(R.string.error)); 
    builder.setIcon(android.R.drawable.ic_dialog_alert); 
    builder.setMessage(R.string.errorMD5); 
    builder.setPositiveButton(R.string.retry, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      //The function return true 
     } 
    }); 
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {   
      @Override 
      public void onClick(DialogInterface arg0, int arg1) { 
       //The function return false      
      } 
    }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 
} 

Répondre

1

Dans votre activité, vous devez mettre en œuvre 2 fonctions.

onYesPressed() and onNoPressed() 

et les appeler à partir de votre boîte de dialogue.

Ou vous pouvez implémenter simplement une fonction qui prend un paramètre booléen

onUserDismissDialog(boolean allow) 

et appeler cette fonction de votre OnClickListener dialogue.

+0

Non, cela ne fonctionne pas Je ne peux pas appeler une fonction dans mon activité dans cette fonction (la fonction est dans une autre classe) – Guillaume

+0

Vous devez appeler MyActivity.this.onUserDismissDialog (true). –

+0

Ok, ça marche bien, merci! – Guillaume