【问题标题】:How to close a Dialog with radio buttons by clicking on a radiobutton如何通过单击单选按钮关闭带有单选按钮的对话框
【发布时间】:2012-01-16 01:19:43
【问题描述】:

这感觉像是一个非常愚蠢的问题,但是当用户单击对话框中的单选按钮时,我不知道如何关闭我的对话框..(类似于 onClick 中的 alert.dismiss())

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

【问题讨论】:

    标签: android dialog radio-button


    【解决方案1】:

    只需在您的OnClickListener 中添加dialog.dismiss():

    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。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        试试下面的api:

        cancel
        dismiss
        

        您的代码将如下所示:

         public void onClick(DialogInterface dialog, int item) {
        
                    Button country = (Button) findViewById(R.id.land_fac_but);
                    country.setText(items[item]);
                    dialog.cancel();
                }
        

        两者之间存在细微差异,请查看:

        http://developer.android.com/reference/android/app/Dialog.html#cancel() http://developer.android.com/reference/android/app/Dialog.html#dismiss()

        【讨论】:

          【解决方案4】:

          试试这个:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-03-11
            • 2016-03-08
            • 2013-04-06
            • 1970-01-01
            • 1970-01-01
            • 2012-06-08
            相关资源
            最近更新 更多