当调用AlertDialog的dismiss方法时,如果没有响应,可能是因为弹出的AlertDialog没有被正确绑定或者没有设置监听器。以下是一个示例代码,演示了如何正确地绑定AlertDialog并设置监听器:
public class MainActivity extends AppCompatActivity {
private AlertDialog alertDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建AlertDialog对象
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to proceed?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 确认点击事件
Toast.makeText(MainActivity.this, "Yes clicked", Toast.LENGTH_SHORT).show();
alertDialog.dismiss(); // 关闭AlertDialog
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 取消点击事件
Toast.makeText(MainActivity.this, "No clicked", Toast.LENGTH_SHORT).show();
}
});
alertDialog = builder.create();
// 显示AlertDialog
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.show();
}
});
}
}
在这个示例中,我们创建了一个AlertDialog对象,并设置了确认和取消的点击事件。我们将AlertDialog对象赋值给MainActivity类中的成员变量alertDialog,以便稍后可以根据需要调用dismiss方法。在onClick方法中,我们首先将“yes”和“no”按钮的点击事件设置为Toast消息,以确保我们能够正确地接收单击事件。如果点击“yes”按钮,我们会关闭当前的AlertDialog,以便用户可以继续进行应用程序中的其他操作。
所以,如果您的AlertDialog的dismiss方法无响应,请确保已正确地创建和显示AlertDialog,并已正确地设置确认和取消的单击监听器。