如何关闭或取消自定义警报对话框

时间:2016-09-21 19:16:19

标签: android alertdialog

我在点击取消按钮时尝试关闭AlertDialog,但它无效。我尝试使用.dismiss().cancel(),但没有一个可以使用。

以下是我的代码片段:

  final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
                        LayoutInflater layoutInflater = LayoutInflater.from(context);
                        final View viewer = layoutInflater.inflate(R.layout.input_dialog, null);

                        alertDialog.setTitle("Edit Albums Name");
                        alertDialog.setView(viewer);

                        Button send =(Button) viewer.findViewById(R.id.saveAlBtn);
                        Button cancel =(Button) viewer.findViewById(R.id.dismissBtn);


      final AlertDialog dialog = alertDialog.create();

                            cancel.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    dialog.cancel(); // dialog.dismiss();
                                }
                            });
    alertDialog.show();

1 个答案:

答案 0 :(得分:4)

问题是一个简单但棘手的问题: 您可以从构建器中创建AlertDialog并将其命名为dialog。单击取消按钮后,关闭dialog。但是你从未真正展示过对话框,即名为dialog.show(),而是调用show()的{​​{1}}方法,称为Builder。该方法只需一步即可创建并显示对话框,但它会创建一个新实例,您不会为其指定名称,因此无法再关闭。

您需要致电alertDialog而不是dialog.show()或使用alertDialog.show()并完全删除第二个AlertDialog dialog = alertDialog.show()