2011-12-08 3 views
2

Cela ressemble à une question très stupide mais je n'arrive pas à comprendre comment fermer mon dialogue lorsque l'utilisateur clique sur un bouton radio dans la boîte de dialogue .. (donc quelque chose comme alerte. rejeter() dans le onClick)Comment fermer une boîte de dialogue avec des boutons radio en cliquant sur un bouton radio

final CharSequence[] items = {"Nederland", "België", "Denemarken", "Duitsland", "Frankrijk", "Italië", "Luxemburg", "Oostenrijk", "Verenigd Koningkrijg", "Zweden"}; 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Selecteer het land"); 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) { 

       Button country = (Button) findViewById(R.id.land_fac_but); 
       country.setText(items[item]); 
      } 
     }); 

     AlertDialog alert = builder.create(); 
     alert.show(); 

Répondre

6

il suffit d'ajouter dialog.dismiss() dans votre OnClickListener:

builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int item) { 
    Button country = (Button) findViewById(R.id.land_fac_but); 
    country.setText(items[item]); 
    dialog.dismiss(); 
    } 
}); 

Si vous voulez rejeter dès qu'un élément est cliqué. Sinon, vous voudrez peut-être envisager de créer un Dialog plus personnalisé en étendant AlertDialog.

0

Vous pouvez appeler le dialog.dismiss() dans le gestionnaire onClick().

0

Essayez ceci:

 AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Selecteer het land"); 
     final AlertDialog alert; 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) { 

       Button country = (Button) findViewById(R.id.land_fac_but); 
       country.setText(items[item]); 
       alert.dismiss(); 
      } 
     }); 

     alert = builder.create(); 
     alert.show(); 
Questions connexes