0

我有一个使用 AlertDialog.builder 构建的 alertDialog。

然后我给它一个我制作的自定义 xml 布局。

在那个布局中,我有带有 onclick 方法的图像视图。

当我单击它们时,我想运行一些效果很好的代码,但我也想关闭对话框窗口。

我怎么做?我似乎没有对对话框的引用,我不能给对话框一个 ID?

现在我将对话框保存到公共字段,然后通过指向该引用来关闭它,但这似乎是一种可怕的做法。

感谢您的帮助:)

编辑:我的代码`AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Choose Color");
    LayoutInflater inflater = this.getLayoutInflater();
    View v = inflater.inflate(R.layout.colorpicker, null);
    alert.setView(v);
    Dialog d=alert.create();`

并且颜色选择器布局有 16 个不同的图像视图,在单击时会运行 changecolor 方法(改变当前颜色)

4

2 回答 2

0

好的,我将假设您的关闭按钮在您的布局中,所以您可以做的是更改

Dialog d=alert.create();`

到一个全局变量,然后为你的按钮设置一个 onclick 监听器

YOUR_BUTTON.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            YOUR_DIALOG.dismiss(); 
        }
    });    
于 2013-07-25T17:24:37.233 回答
0

为了最好地回答您的问题,我们需要您发布代码示例,但您可以试试这个

.setNegativeButton(android.R.string.cancel,new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, just close
                    // the dialog box and do nothing
                    dialog.cancel();
                }
            });
于 2013-07-25T00:37:40.533 回答