2014-05-11 83 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 
}