2017-08-29 100 views
1

我有一個調用第二個java類的活動。我希望在第二個類被調用後顯示一個進度條,然後返回到正常的活動執行。我發現了其他一些線程,但我無法讓進度條停止。如何在android中啓動和停止progressbar?

+1

能不能請你你的代碼 – MrAppMachine

+0

你需要使用progressdialog –

+1

,所以你可以簡單地使用'Visibility'走了,可見 –

回答

3

有超過here一個完整的例子。

報價:

聲明你的進度對話框:

ProgressDialog progress; 

當你準備好開始進度對話框:

progress = ProgressDialog.show(this, "dialog title", 
    "dialog message", true); 

,並把它趕走你的時候're done:

progress.dismiss(); 

這裏有一個小螺紋例子給你:

// Note: declare ProgressDialog progress as a field in your class. 

progress = ProgressDialog.show(this, "dialog title", 
    "dialog message", true); 

new Thread(new Runnable() { 
    @Override 
    public void run() 
    { 
    // do the thing that takes a long time 

    runOnUiThread(new Runnable() { 
     @Override 
     public void run() 
     { 
     progress.dismiss(); 
     } 
    }); 
    } 
}).start(); 

ProgressDialog已過時,所以你可能需要使用一個進度條。我找到了this post關於刪除其中之一。

嗯,我認爲這很荒謬,但這裏是我如何修復它。

在我的xml爲ProgressBar,我添加了android:visibility="gone" 默認情況下隱藏它。然後,在我的代碼中,我首先告訴它在試圖獲取服務器列表之前顯示 (View.VISIBLE),然後我告訴 它在完成後隱藏(View.GONE)。這工作(我可以看到 進度指示器,而數據加載,然後它消失了)。所以 我想我無法讓它隱藏在代碼中,因爲代碼是 而不是強迫它以可見開始......這對我來說就像是一個 的錯誤。

+0

謝謝你的提示,@Pavneet_Singh。我會做更多的研究並編輯我的答案。 – RubbelDieKatz

+1

謝謝你,這工作正常。假設我想在解散進度條以使其在額外的20秒內可見(代碼在本地主機中運行速度過快),以使用戶知道某事正在進行中。我怎樣才能做到這一點? –

+0

@tzimhspanousis,這可能是一個額外的問題。發佈你的代碼。 – RubbelDieKatz

1

它非常簡單:

展現出進步

ProgressDialog dialog = ProgressDialog.show(getContext(), "Title", "Message"); 

,並阻止它:

dialog.dismiss(); 
+1

'ProgressDialog'已被棄用,因此'ProgressBar'問題 –

+1

已被棄用?所以呢?你知道'Thread.stop()'也被棄用,因爲我已經開始編程?只要有很多4.X設備出現,它就會保證能夠繼續工作。 –

+1

'那麼什麼?''Thread.stop()'也被棄用,這就是爲什麼沒有人使用它,它是在Android的建議,儘可能避免不推薦使用的版本,並可能最知道進展對話框開始和停止,但你不能做同樣的與進度條因此問題 –