2011-09-23 56 views
3

我在我的應用程序中的按鈕,在我的按鈕的doubleClick我打開對話框。有時當我雙擊快速按鈕,然後對話框打開兩次會發生什麼情況,作爲其結果用戶必須兩次取消對話框。如何防止對話框打開兩次

所以任何人都可以建議我如何防止這個對話框打開我的按鈕的doubleClick兩次。

+0

爲什麼不單擊而不是雙擊..... – Krishna

回答

2

可能,這將幫助你:

取一個計數變量,即count=0;。 在按鈕單擊驗證條件,以便if(count==0)顯示對話框並將計數設置爲1.(此對話框將不會再次打開),同時解除對話框再次將計數設置爲0。

我認爲這將工作

希望它有幫助。

+0

計數被聲明爲本地或全局變量 – AndroidDev

+0

另一件事我的對話框雙擊按鈕 – AndroidDev

+0

打開兩次,但如果用戶關閉對話框沒有單擊確定或取消按鈕..只是覺得用戶打開對話框,並單擊後退按鈕..在這種情況下,計數是1 ..然後對話框將永遠不會出現 – AndroidDev

7

做出字段中輸入對話框,像

private Dialog m_dialog = null; 

,並在您的onClick監聽器檢查它的狀態:

if ((m_dialog == null) || !m_dialog.isShowing()){ 
    m_dialog = new Dialog(...); // initiate it the way you need 
    m_dialog.show(); 
} 

編輯 順便說一句,如果你不需要初始化對話每次你可以分開if()這樣的子句:

if (m_dialog == null){ 
    m_dialog = new Dialog(...); // initiate it the way you need 
    m_dialog.show(); 
} 
else if (!m_dialog.isShowing()){ 
    m_dialog.show(); 
} 
1

當按下Button時,使用Button.setEnabled(false)將其禁用。完成對話後,使用DialogInterface.OnDismissListener重新啓用Button。這樣你就不必持有對話框的全局引用。

0

我面臨的最後2天,大量的命中和試驗後,同樣的問題,我在我的代碼中發現一個小問題我沒有解僱我在我的AsyncTask的onPostExecute()打開的對話框在AsyncTask Work之後做一些額外的工作。我打電話給myCustomDialog.dismiss(),一切正常。