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