2010-12-13 97 views
3

我在我的android應用程序中有一個儀表板部分,一旦用戶點擊一個按鈕,preogressDialog顯示(「請稍候」),下一個活動加載。但是當我點擊android設備的bacj按鈕時,進度條仍然顯示出來。我用dismiss()但沒用。任何幫助表示讚賞。Android進度條不隱藏

progressDialog.setMessage("Please wait..."); 
progressDialog.setIndeterminate(true); 
progressDialog.setCancelable(true); 
progressDialog.show(); 
browseCategories(); 

protected void browseCategories() { 
     Log.i(MY_DEBUG_TAG, "Bow!"); 
     Intent c = new Intent(this, CategoryListActivity.class); 
    c.putExtra("user", u); 
    startActivity(c); 
} 

回答

2

在啓動另一個活動之前在活動中使用進度對話框沒有任何意義。

活動大部分意味着面向用戶界面,當一個人開始另一個時,那麼新的一個是在第一個的頂部「分層」。

如果CategoryListActivity在準備使用之前需要一段時間(例如加載數據),那麼它應該顯示進度對話框而不是啓動它的活動。使用AsyncTask加載數據或任何需要延長時間的操作是繼續進行的最佳方式。

我建議你閱讀Application Fundamentals和佈局Activity Lifecycle

0

XML文件:

按鈕的onclick事件
<ProgressBar 
     android:layout_marginTop="60dip" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/prgressbar" 
     android:visibility="invisible" 
     /> 

做到這一點:

ProgressBar prgressbar; 
prgressbar=(ProgressBar)findViewById(R.id.prgressbar); 

prgressbar.setVisibility(LinearLayout.VISIBLE); // this of visible the progress bar 

prgressbar.setVisibility(LinearLayout.INVISIBLE); // this is for invisible