Android dialog.com';不工作,被窃听了吗?

Android dialog.com';不工作,被窃听了吗?,android,Android,我有下面的代码。它显示了一个带有文本视图和一些按钮的对话框。当按下按钮时,对话框应该关闭。但是它没有。它被窃听了吗?我尝试了dialog.discouse和dialog.cancel,但都不起作用 解决办法是什么 AlertDialog.Builder alert = new AlertDialog.Builder( Gestionarez.this); final TextView Dtv = new TextView(Gest

我有下面的代码。它显示了一个带有文本视图和一些按钮的对话框。当按下按钮时,对话框应该关闭。但是它没有。它被窃听了吗?我尝试了dialog.discouse和dialog.cancel,但都不起作用

解决办法是什么

AlertDialog.Builder alert = new AlertDialog.Builder(
                    Gestionarez.this);

            final TextView Dtv = new TextView(Gestionarez.this);
                 printeaza=new Button(Gestionarez.this);
                 stergere=new Button(Gestionarez.this);
                 trimitere=new Button(Gestionarez.this);
            final AlertDialog dialog = alert.create();

            trimitere.setText("Trimite");
            trimitere.setTextSize(10);
            trimitere.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                }
            });
            printeaza.setText("Printeaza");
            printeaza.setTextSize(10);
            printeaza.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                    dialog.cancel();
                }
            });
            stergere.setText("Sterge");
            stergere.setTextSize(10);
            stergere.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    boolean deleted = file.delete();

                    Toast.makeText(Gestionarez.this, str+ " a fost sters ",
                            Toast.LENGTH_SHORT).show();
                    lv2.invalidateViews();


                }
            });
            LinearLayout ldialog = new LinearLayout(Gestionarez.this);
            LinearLayout ldialogb = new LinearLayout(Gestionarez.this);
            ldialog.setOrientation(LinearLayout.VERTICAL);
            ldialogb.setOrientation(LinearLayout.HORIZONTAL);
            Dtv.setText(text);
            ldialog.addView(Dtv);
            ldialogb.addView(trimitere);
            ldialogb.addView(printeaza);
            ldialogb.addView(stergere);
            ldialog.addView(ldialogb);
            ldialogb.setGravity(Gravity.CENTER | Gravity.BOTTOM);
            Dtv.setGravity(Gravity.CENTER | Gravity.BOTTOM);
            Dtv.setPadding(60, 60, 60, 60);
            alert.setView(ldialog);

            alert.show();

        }
    });

}

看起来您正在显示一个新创建的对话框,其中引用您没有保留

alert.setView(ldialog);
alert.show();
您试图关闭一个引用与该对话框不同的对话框:

 dialog.dismiss();
 dialog.cancel();
从对话框中删除最后一行,并将最后一行“
alert.show();
”更改为

现在你有了一个对话框的引用,它会工作的

试试
dialog.finsh()然后<代码>对话框.关闭()

或者这个onClick:

if (dialog != null && dialog.isShowing()) {
        dialog.dismiss();

你不能把那两条线去掉吗?我认为当按下按钮时,对话框默认关闭。我需要删除标准按钮。我所说的按钮是我添加的按钮,如您所见,是常用的按钮。仍然不起作用。现在,如果我尝试添加dialog.Disclose();它说对话框需要是最终的。如果我让它成为最终的,另一个说要删除finalok,这里的逻辑有问题,不是在方法中声明AlerDialog,而是将它作为类成员取出,这将解决问题。。。
if (dialog != null && dialog.isShowing()) {
        dialog.dismiss();