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

Java 如何在没有AlertDialog的自定义对话框中实现取消按钮?,java,android,dialog,customdialog,Java,Android,Dialog,Customdialog,我知道,有人问过类似的问题,我已经查遍了所有我能找到的东西,但我没有找到这个问题的答案 代码如下: protected Dialog onCreateDialog(int id) { Dialog dialog = new Dialog(this); switch(id) { case R.layout.database_feed: dialog.setContentView(

我知道,有人问过类似的问题,我已经查遍了所有我能找到的东西,但我没有找到这个问题的答案

代码如下:

    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\u提要按钮关闭对话框。但是我没有访问onClick方法中的对话框的权限。我真的感到困惑

我不想使用AlertDialog或DialogBuilder,因为对话框中还有其他东西很难在AlertDialog或其他东西中实现。 另外,我已经知道了为对话框创建单独活动的解决方案,但实际上我想知道它是如何以我在这里尝试的方式工作的。 此外,我已经尝试使用DialogInterface.OnClickListener(),但在setOnClickListener(…)-方法中无法使用它

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

任何提示/帮助都将不胜感激

Thx变化

Dialog dialog = new Dialog(this);


然后,您可以在onClick()方法中访问dialog。

要么将“dialog”存储为类变量,要么将其作为方法中的最终变量。

很好,就是这样。我已经找了好几个小时了。谢谢额外提示:在eclipse中,当需要从匿名类中访问变量final时,声明变量final是默认的自动更正操作。
final Dialog dialog = new Dialog(this);