我在点击取消按钮时尝试关闭AlertDialog
,但它无效。我尝试使用.dismiss()
和.cancel()
,但没有一个可以使用。
以下是我的代码片段:
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
LayoutInflater layoutInflater = LayoutInflater.from(context);
final View viewer = layoutInflater.inflate(R.layout.input_dialog, null);
alertDialog.setTitle("Edit Albums Name");
alertDialog.setView(viewer);
Button send =(Button) viewer.findViewById(R.id.saveAlBtn);
Button cancel =(Button) viewer.findViewById(R.id.dismissBtn);
final AlertDialog dialog = alertDialog.create();
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.cancel(); // dialog.dismiss();
}
});
alertDialog.show();
答案 0 :(得分:4)
问题是一个简单但棘手的问题:
您可以从构建器中创建AlertDialog
并将其命名为dialog
。单击取消按钮后,关闭dialog
。但是你从未真正展示过对话框,即名为dialog.show()
,而是调用show()
的{{1}}方法,称为Builder
。该方法只需一步即可创建并显示对话框,但它会创建一个新实例,您不会为其指定名称,因此无法再关闭。
您需要致电alertDialog
而不是dialog.show()
或使用alertDialog.show()
并完全删除第二个AlertDialog dialog = alertDialog.show()
。