2011-11-14 39 views
0

警報框中的確定按鈕,我將顯示一個警告框,其中包含消息和確定按鈕。在後臺我打了一些API並將其保存到數據庫(我在異步任務中執行)。我的要求是我想禁用ok按鈕,直到後臺進程完成。完成後臺進程後,我需要啓用警報框中的確定按鈕。如何禁用在我的應用程序中的android

我的警告框創建代碼:

helpBuilder1 = new AlertDialog.Builder(Home.this); 
    helpBuilder1.setTitle("Welcome"); 
    helpBuilder1.setMessage("Thank you for waiting while App Installs"); 

    mOkButton = helpDialog1.getButton(AlertDialog.BUTTON_POSITIVE); 
    mOkButton.setEnabled(false); 

    if(mOkButton.isEnabled()==false){ 
     Log.e("Home.java - ShowPopUp", "button is disablled"); 
     new First_Time_Sync().execute(); 
    } 

    mOkButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      helpDialog1.dismiss(); 
      showSilde_show_PopUp(); 

     } 
    }); 

    helpDialog1 = helpBuilder1.create(); 
    helpDialog1.show(); 

請幫助我。

+3

有必要,這是一個AlertDialog?爲什麼不作爲ProgressDialog實現?爲什麼OK按鈕必須存在? – stefan

+0

我必須禁用確定按鈕,直到後臺進程完成。之後啓用確定按鈕,然後用戶與應用程序進行交互。我需要它在警戒框。請幫幫我。 –

+0

相反,我寧願顯示進度條,一旦你完成下載過程,只需顯示確定按鈕的警報框。我相信這曾經是最好的做法,而不是你之前評論過的。 –

回答

1
在AlertDialog

使用getButton()來獲取潛在的OK按鈕保持

Button mOkButton = helpDialog1.getButton(); 
mOkButton.setEnabled(false)` 
+0

我得到崩潰的應用程序按鈕mOkButton = helpDialog1.getButton(); mOkButton.setEnabled(false)位於helpDialog1 = helpBuilder1.create()之上;但helpDialog1 = helpBuilder1.create();在Button mOkButton不顯示按鈕之前。請更新有問題的XML。 –

0

可惜似乎沒有直接的API的方式。然而,這是我更多的自定義解決方案的想法:[更新輸入時:Rajdeeps解決方案聽起來合理,首先嚐試;-)如果它沒有幫助,請嘗試這個。]

創建一個自定義AlertDialog佈局您的按鈕,它與

LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 
View view = inflater.inflate(R.layout.yourlayout,(ViewGroup) findViewById(R.id.yourLayoutsOuterLinearLayout)); 
builder.setView(view); 

佈局添加到您的AlertDialog可以看看這樣的事情:

<LinearLayout 
    android:id="@+id/yourLayoutsOuterLinearLayout" 
    android:layout_height:...> 
    <Button 
    android:id="@+id/myButton" 
    android:...> 
    </Button> 
</LinearLayout> 
相關問題