2014-05-11 44 views
0

我有一个对话框,如果点击我的对话框旁边的话就可以取消对话框。但在关闭对话框之前,我想检查一个字段,如果检查结果是否定的,那么对话框不应该关闭。我想,我可以这样做,如果我重写onDismiss()方法,但它不起作用。对话框不能用“cancelable = true”关闭

如果对话框应该关闭或保持打开状态,我必须覆盖哪个方法来执行检查并决定? 感谢您的帮助:)

回答

0

要保持单击按钮时打开对话框,您必须重写DialogInterface.OnShowListener。
检查答案Here
您可以使用AlertDialog.BUTTON_NEGATIVE获取否定按钮,然后自己覆盖onClickListener以防止对话框消失。

+0

我的对话框中没有用于关闭它的按钮。我正在使用一个DialogFragment,它应该关闭,如果我点击旁边的对话框。所以我需要重写方法,这是调用dismiss(),如果我点击旁边的对话框。 – user3621165

+0

哦...对不起,我假设你使用AlertDialog。 ORZ – chartsai

0

不确定这是最好的解决方案,但您应该可以覆盖cancel方法,并在验证时调用超级方法。

@Override 
public void cancel() { 
    if (YOUR_LOGIC) { 
     super.cancel(); 
    } 

    // do nothing 
}