//About Button in the principal menu
final Button button3 = (Button) findViewById(R.id.button3);

button3.setOnClickListener(
    new OnClickListener() {

    public void onClick(View v) {
        //set up dialog
        Dialog dialog = new Dialog(MainMenu.this);
        dialog.setContentView(R.layout.maindialog);
        dialog.setTitle("About");
        dialog.setCancelable(true);

        //now that the dialog is set up, it's time to show it
        dialog.show();

        Button closeButton = (Button) dialog.findViewById(R.id.Button01);
//      closeButton.setOnClickListener(new Button.OnClickListener() {
//          public void onClick(View view) {
//              dialog.dismiss();
//          }
//      });

        if(v==closeButton)
            dialog.dismiss();
    }
});


我有此代码,但解雇不起作用。

我有一个“关于”按钮,当我单击它时会显示对话框窗口。
然后对话框窗口上有一个“确定”按钮,该“确定”按钮应关闭该对话框,但关闭不起作用。
你能帮我知道为什么吗?

最佳答案

首先,您的Dialog必须在您的类范围内,因此您需要声明

public Dialog dialog;


在任何方法之外。然后,在您的onCreate()方法中,像创建对话框一样创建对话框。仅将show()dismiss()调用留给OnClickListeners。

您的按钮将如下所示:

Button button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        dialog.show();
    }
});

Button closeButton = (Button) dialog.findViewById(R.id.Button01);
closeButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        dialog.dismiss();
    }
});


同样,提出一个适合您的命名约定而不是随机大写或不大写资源名称(例如Button03与button1)也很好。

关于android - 无法关闭自定义对话框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6406172/

10-14 12:19
查看更多