1

我有一个从网络填充的列表视图的活动。在加载数据时,我想显示一个进度对话框而不是列表视图。

我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ProgressBar
        android:id="@+android:id/progress_large"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

    <ExpandableListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

我这样做是为了让进度条显示出来(这很有效):

setProgressBarVisibility(true);

但是,一旦填充了列表视图(使用 AsyncTask),我希望进度条消失,但事实并非如此,它保持在列表视图上方。

这是我在 AsyncTask 中所做的:

 @Override
    protected void onPostExecute(Void result) {
        setProgressBarVisibility(false);

        //... and some code to update UI
    }
4

3 回答 3

2

在您的代码中执行此操作,

@Override
    protected void onPostExecute(Void result) {
         //progressBar.dismiss(); //this dismisses the progressbar
              progressBar.setVisibility(ProgressBar.GONE)

        //... and some code to update UI
    }
于 2012-09-06T02:20:57.563 回答
0

ProgressBar您可以在 the 的方法中创建 aProgressDialog并在preExecute方法中AsyncTask关闭 the ProgressDialog,而不是在布局中使用 a postExecute

于 2012-09-06T02:35:14.750 回答
0

试试这个:

声明对话框:ProgressDialog 对话框;

在 onPostExecute 中: dialog.dismiss();

希望能帮助到你..

于 2012-09-06T03:41:17.663 回答