【发布时间】:2018-07-30 14:19:00
【问题描述】:
如果按下设备的后退按钮,我有一个不应该在特定条件下关闭的 AlertDialog(其中的一个按钮未启用)。
通过以下代码,我已经成功地部分实现了预期的行为。
dialog1.setOnCancelListener(new DialogInterface.OnCancelListener()
{
@Override
public void onCancel(DialogInterface dialog)
{
Button button3 = ((AlertDialog)
dialog1).getButton(AlertDialog.BUTTON_NEUTRAL);
if (!button3.isEnabled())
{
dialog1.show();
}
else
{
dialog1.dismiss();
}
}
});
但是这段代码存在两个问题:
1) 有一小段时间 dialog1 停止显示再次显示,这看起来有点糟糕。
2) 更重要的是,当该按钮被禁用时显示的一个需要的按钮停止显示,该按钮最初不会与对话框一起显示,在某些情况下也会触发显示的按钮被禁用它会显示。出于某种原因,对话框似乎没有刷新到上一个状态,并且只保留了最初的元素。
无论如何,如果在上述条件下显示对话框时按下后退按钮,绝对不会发生任何事情,或者至少保持与解除时完全相同的元素并稍后再次显示?
【问题讨论】:
标签: android events alertdialogpro