-2

当我的进度条从 0 开始时,我想设置每秒的进度,直到达到 100%。

如何才能做到这一点。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container_dialog"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/blackie"
    android:gravity="center"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Envoie en cours..."
        android:textColor="@color/white"
        android:textSize="@dimen/eighteen_sp"
        android:textStyle="bold" />

    <ProgressBar
        style="@style/CustomProgressBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="15dip"
        android:max="100"
        android:progress="50"
        />

</LinearLayout>
4

2 回答 2

1
int progress = 0;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {

    @Override
    public void run() {
        // TODO Auto-generated method stub

        progress = Math.min(100, progress + 10); 
        progressBar.setProgress(progress);
        if( progress != 100 )
        {
            handler.postDelayed(this, 1000);
        }else
        { 
            handler.removeCallback(this);
         }


    }
}, 1000);

您也可以考虑为您提供一个 id,ProgressBar以便您可以在ActivityusingfindViewById方法中访问它。

于 2013-04-23T11:07:08.577 回答
0
Handler mHandler = new Handler(); 
int progress=0;

private Runnable mUpdateSpinnerTask = new Runnable() {
       public void run() {

          yourProgressBar.setProgress(progress);
           progress++
            if(progress<100)
           mHandler.postDelayed(this, 1000);

       }
    };

mHandler.postDelayed(mUpdateSpinnerTask, 1000);
于 2013-04-23T11:05:49.073 回答