安卓进度条无法隐藏

4

我在我的安卓应用程序中有一个控制面板部分,当用户点击一个按钮时,会显示一个进度对话框("请稍候")并加载下一个活动。但是当我点击安卓设备的返回按钮时,进度条仍然显示。我使用了dismiss()方法,但没有用。希望得到任何帮助。

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个回答

2
在启动另一个活动之前,在活动中使用进度对话框是没有意义的。
活动大多数情况下是面向用户界面的,当一个活动启动另一个活动时,新的活动会“覆盖”在第一个活动的上面。
如果CategoryListActivity需要一些时间才能准备好使用(例如加载数据),那么它应该显示进度对话框而不是启动它的活动。使用AsyncTask来加载数据或进行任何需要较长时间的操作是最好的方法。
我建议您阅读应用程序基础活动生命周期

0

在布局XML文件中:

   <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"
      />

在按钮的OnClick事件中执行以下操作:

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 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接