2013-06-26 59 views
0

在一個Android應用程序中,我試圖在單擊按鈕時使ProgressBar可見,執行一些進程,然後再次使該欄不可見。我的按鈕的onClick方法的概述如下所示:ProgressBar在我打電話給setVisibility(View.Visible)時不會顯示

ProgressBar bar = (ProgressBar)findViewById(R.id.prog_bar); 
bar.setVisibility(View.VISIBLE); 

...做一些東西......

bar.setVisibility(View.INVISIBLE); 

然而,當我運行的代碼,而中間的過程是完成後,ProgressBar從不出現。有任何想法嗎?

+1

http:// developer .android.com /參考/機器人/插件/ ProgressBar.html。檢查這 – Raghunandan

+1

@Raghunandan這個鏈接呢? 'ProgressBar'應該默認可見。 –

+0

Arun,你確定它在佈局中設置正確嗎?例如。它沒有被其他視圖覆蓋,或者是什麼?如果您向我們展示了佈局的xml文件,那將會很棒。 –

回答

2

OnClick在主線程上被調用。在您的OnClick方法返回之前,您對ProgressBar的更改不會有任何可見的效果。那時候,你已經完成了所有的工作,並再次隱藏起來。

將您的工作轉移到後臺線程。這不僅會讓你的應用更具響應能力,它還將允許程序欄出現。 (注意,當你的工作完成後,你必須從主線程中隱藏進度條,而不是工作線程。通常你會發送一條消息給一個處理程序來達到這個目的。)

+0

直到他顯示完整的「onClick」方法代碼後,我才能確定。 –

+0

亞當,謝謝,我想這就是發生了什麼。不幸的是,因爲中間的工作是指主視圖中的對象,它說我無法將它放入單獨的線程中? –

相關問題