【发布时间】:2018-11-21 23:42:00
【问题描述】:
我想向用户显示一个确定取消对话框,我想知道用户是否按下了确定、取消,或者他是否选择通过单击屏幕上的其他位置或按下返回按钮来关闭对话框。
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();
这里的问题是,每当用户按下确定按钮时,就会立即触发关闭侦听器。如果用户按下按钮,有什么方法可以不触发关闭侦听器?
我确实意识到我可以使用布尔标志,但我希望实际上有一个优雅的解决方案。
我不是在寻找有关如何防止对话框被关闭的解决方案。我正在寻找有关如何防止在按下确定按钮并关闭对话框时触发关闭侦听器的解决方案。
【问题讨论】:
-
@ADM 这是怎么复制的?您是否正确阅读了问题?用户只想避免 onDismiss for Ok 和 Cancel 按钮按下。
-
是的,我正确地阅读了这个问题。这就是我的想法。无论如何都会调用 Dismiss Listener。
标签: android listener android-dialog