2011-12-08 54 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();