2012-01-30 73 views
0

我有一個ProgressDialog在發送郵件時顯示在哪裏。進度對話框可以在活動和課程中使用,因爲其中一個博客提供了一個提示,顯示跨活動的ProgressDialog改變ProgressDialog的消息android

下面是代碼,因爲我重寫onCreateDialog()

@Override 
protected Dialog onCreateDialog(int id) { 

    if(id == ID_SENDING_MAIL){ 
    ProgressDialog loadingDialog = new ProgressDialog(this); 
     loadingDialog.setMessage("Sending Email..."); 
    loadingDialog.setIndeterminate(true); 
    loadingDialog.setCancelable(true); 
    return loadingDialog; 
} 

return super.onCreateDialog(id); 
} 

然後我把郵件發送如下

showDialog(ID_SENDING_MAIL); 
new Thread(new Runnable(){ 
    public void run(){//I am calling Mail Send here 

     dismissDialog(Email.ID_SENDING_MAIL); 
    } 
}).start(); 

在run方法我實例郵件類和發送的參數主機。 這是完全工作,但我想設置不同的消息ProgressDialog。 像在連接的時候主機

Sending Mail then 
Mail Sent Successfully 

onCreateDialog()使用時,我們怎麼能開展這些變化。 期待您的回覆。 謝謝。

回答

1

最佳方式通過使用AsyncTask做到這一點:

onProgressUpdate(Integer... progress)使用進度PARAM到所需消息設置爲ProgressDialog(使用任何其它方法的開關等,以確定笏確切的消息應該是)

+0

謝謝。我正在使用Mail類,例如'MailUtil branchEmail = new MailUti(「username」,「password」); ' 然後我添加像'branchMail.setSubject'這樣的屬性,消息,你能告訴我如何爲上述調用AsyncTask。 – Mukunda 2012-01-30 12:40:22

1

如果要在網絡線程的不同階段顯示不同的消息,則使用AysncTask,並且在每個步驟中使用doInBackground()方法後,調用publishProgress方法。 在onProgressUpdate(Integer... progress)方法改變消息正在進行對話框。

+0

感謝。我正在使用Mail類,例如'MailUtil branchEmail = new MailUti(「username」,「password」); ' 然後我將屬性添加到'branchMail.setSubject',消息,你能讓我知道我怎麼能爲上面調用AsyncTask。 – Mukunda 2012-01-30 12:40:34