2010-12-13 92 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