【问题标题】:Closing an AlertDialog box after a button has been clicked单击按钮后关闭警报对话框
【发布时间】:2013-01-30 16:51:48
【问题描述】:

我有以下代码,如果未检测到网络连接,则会向用户显示一个对话框。

private void createNoNetworkDialog() {

    LayoutInflater inflater = LayoutInflater.from(this);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    View view = inflater.inflate(R.layout.offline_mode_dialog,null);
    builder.setView(view);
    builder.show();

}

此对话框中有两个按钮,它们具有为其 onClick 操作定义的方法。我想在按下这些按钮中的任何一个后关闭弹出对话框。有什么想法吗??

【问题讨论】:

  • 只需调用dismiss();在构建器上

标签: java android android-alertdialog layout-inflater


【解决方案1】:

是的,从ListeneronClick 调用dismiss(),因为传递了DialogInterface 引用,这允许解雇。

例如

builder.setPositiveButton ("Yes", new DialogInterface.OnClickListener()
                             {
  public void onClick (DialogInterface dialog, int which)
  {
    //do stuff beforehand
    dialog.dismiss();
  }
});

或者,如果您的按钮在布局内,请显示对话框并保留对它的引用 (final AlertDialog dialog = builder.show())。然后使用dialog.findViewById() 找到相应的按钮。分配一个普通的View.OnClickListener 并使用您持有的对话框引用在其中调用dismiss()

【讨论】:

    【解决方案2】:

    试试这个,我正在使用自定义布局,它对我有用。初始化Buttoncuston_dialog.findViewById(),然后写OncliclListner()。它会工作

        final Dialog custon_dialog = new Dialog(Login.this);
                custon_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                custon_dialog.setContentView(R.layout.forget_custom_dialog);
                custon_dialog.setCancelable(true);
             Button submit_Btn = (Button) custon_dialog
                        .findViewById(R.id.submit);
            Button cancel_Btn = (Button) custon_dialog
                        .findViewById(R.id.cancel);
           submit_Btn.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
          //do your stuf
                            }
    
                });
            cancel_Btn.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                     custon_dialog.dismiss();
                            }
    
                });
            custon_dialog.show();
            }
    

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 2019-05-15
      • 1970-01-01
      • 2017-08-16
      相关资源
      最近更新 更多