如何在没有AlertDialog的自定义对话框中实现取消按钮?

时间:2012-03-20 16:03:51

标签: java android dialog customdialog

我知道,已经提出了类似的问题,我已经查看了我能找到的所有内容,但我没有找到任何答案。

以下是代码:

    protected Dialog onCreateDialog(int id)
    {
        Dialog dialog = new Dialog(this);
        switch(id)
        {
            case R.layout.database_feed:
                dialog.setContentView(R.layout.database_feed);
                ((Button) dialog.findViewById(R.id.discard_button)).setOnClickListener(
                    new View.OnClickListener() 
                    {
                        //@Override
                        public void onClick(View v) 
                        {
                            //dialog.cancel();
                        }
                    }
                );
                break;
        }
        return dialog;
    }

我只想点击R.layout.database_feed按钮关闭对话框。但我没有访问onClick方法中的对话框。我真的很困惑。

我不想使用AlertDialog或DialogBu​​ilder,因为Dialog中的其他内容很难在AlertDialog中实现。 此外,我已经知道为对话框单独创建活动的解决方案 - 但实际上我想知道它是如何工作的,我正在尝试这里。 此外,我已经尝试使用DialogInterface.OnClickListener()但我不能在setOnClickListener(...) - 方法中使用它。

只是取消对话就不会那么难......但我不明白。

感谢任何提示/帮助!

THX

2 个答案:

答案 0 :(得分:4)

更改

Dialog dialog = new Dialog(this);

final Dialog dialog = new Dialog(this);

然后您可以在onClick()方法中访问对话框。

答案 1 :(得分:2)

将“对话框”存储为类变量,或者在方法中将其设置为最终。