2015-06-19 69 views
0

我實現了一個進度條,下載兩個文件,進度條如下進度條隨着不同的訊息,不同的文件

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case progress_bar_type: // we set this to 0 
     pDialog = new ProgressDialog(this); 
     if (x.equals("xP")) 
     { 
      pDialog.setMessage("Downloading file. Please wait..."); 
     } 
     if (x.equals("xV")) 
     { 
      pDialog.setMessage("Updating file. Please wait..."); 
     } 

     pDialog.setIndeterminate(false); 
     pDialog.setMax(100); 
     pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
     return pDialog;  
    default: 
     return null; 
    } 
} 

我想顯示不同的按摩每兩個文件(下載和更新)。

  1. 我按下一個按鈕
  2. 它調用類A(X​​ = XP),這將下載該文件(消息是Downlaoding)
  3. A類然後調用類B(X = XV),這將下載的第二文件(消息被更新)
  4. 然而,當進度啓動
  5. 如果我在的onClick按鈕組x,則x將保持在整個按鈕事件相同的值即使該事件具有限定X啓動兩個類X不爲公知的在他們和因此消息將永遠下載這兩個文件。希望這是有道理的。

回答

0

您可以動態更改progressDialog的消息,因此一旦得到X,您可以將消息設置爲適當的消息。 爲了避免混淆,如果它在UI線程中運行,請嘗試更新A類和B類本身中的消息。

+0

我注意到,進度條在單個實例中爲每個文件運行兩次,這很好,但它只被調用一次而不是兩次,我已經放出一個系統輸出,顯示該調用僅被調用一次,但運行兩次,這就是爲什麼我掙扎,它不會爲每個文件再次啓動。 – TwoStarII

+1

檢查進度條的實例,如果它不爲空,並且isShowing()爲true,則只更新其消息,否則創建一個新實例。 –

+0

謝謝,我在if和else語句中使用了isShowing(),但由於某種原因,它在else(not if)語句中更新,但是這對我有用:如果(pDialog.isShowing()){ }通過out.println( 「顯示:」); //這是錯的嗎? } else \t { \t System.out.println(「NOT SHOWING:」); \t pDialog.setMessage(「正在更新文件,請稍候...」); \t} – TwoStarII

相關問題