2011-12-08 52 views
2

这感觉像一个非常愚蠢的问题,但我无法弄清楚当用户单击对话框中的单选按钮时,如何关闭我的对话框..(所以像警报的东西。解雇()在onclick)如何通过单击一个单选按钮关闭对话框单选按钮

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(); 

回答

6

只需添加dialog.dismiss()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(); 
    } 
}); 

如果你想尽快的项目被点击驳回。否则,您可能需要考虑通过扩展AlertDialog来创建更多自定义Dialog

0

您可以在onClick()处理程序中调用dialog.dismiss()

0

试试这个:

 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();