进度条ICS

时间:2012-09-06 02:04:56

标签: android progress-bar android-4.0-ice-cream-sandwich

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

我的布局:

<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
    }

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

您可以在ProgressBar的{​​{1}}方法中创建ProgressDialog而忽略preExecute中的AsyncTask,而不是在布局中使用ProgressDialog postExecute方法。

答案 2 :(得分:0)

试试这个:

声明对话框:ProgressDialog对话框;

在onPostExecute:dialog.dismiss();

希望它有所帮助..