我想向用户显示一个确定取消对话框,我想知道用户是否按下了确定、取消,或者他是否选择通过单击屏幕上的其他地方或按下后退按钮来关闭对话框。
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
final EditText input = new EditText(MainActivity.this);
builder.setView(input);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// ok stuff
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
// cancel stuff
}
});
builder.setOnDismissListener(new DialogInterface.OnDismissListener()
{
@Override
public void onDismiss(DialogInterface dialog)
{
//dismiss stuff
}
});
builder.show();
这里的问题是,每当用户按下 ok 按钮时,dismiss listener 会立即被触发。如果用户按下按钮,有什么办法不触发 dismiss listener 吗?
我知道我可以使用 bool 标志,但我希望实际上有一个优雅的解决方案。
我不是在寻找有关如何防止对话被关闭的解决方案。我正在寻找有关如何防止在按下确定按钮并关闭对话框时触发关闭监听器的解决方案。
最佳答案
我想你需要的是setOnCancelListener() .
关于android - Dialog 不会在按下按钮时触发关闭监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50819473/