在Android开发中,如果你无法在自定义的AlertDialog.Builder
上调用dismiss()
方法,可能是因为你混淆了AlertDialog.Builder
和AlertDialog
的概念。AlertDialog.Builder
是用来构建AlertDialog
对象的,而dismiss()
方法是定义在AlertDialog
对象上的。
以下是如何正确创建一个AlertDialog
并在需要时调用dismiss()
方法的步骤:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("标题")
.setMessage("消息内容")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// 用户点击确定按钮后的操作
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// 用户点击取消按钮后的操作
dialog.dismiss(); // 正确调用 dismiss 方法
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
如果你需要在对话框外部或其他地方关闭对话框,你应该持有AlertDialog
的引用,并在适当的时候调用它的dismiss()
方法。
// 假设 alertDialog 是你在步骤 3 中创建的 AlertDialog 实例
alertDialog.dismiss();
AlertDialog
实例上调用dismiss()
,而不是在AlertDialog.Builder
实例上调用。AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示")
.setMessage("这是一个自定义的 AlertDialog")
.setPositiveButton("关闭", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); // 正确关闭对话框
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
领取专属 10元无门槛券
手把手带您无忧上云