2011-02-25 7 views
1

進行状況バーを作成しました。進捗バー(例:2分) の時間を割り当てたいので、進行状況バーを実行中に時間を表示する必要があります。 これをどのように達成できますか?AndroidのProgressBarで時間を表示

答えて

5

あなたはCountDownTimer

bar = (ProgressBar) findViewById(R.id.progress); 
    bar.setProgress(total); 
    int twoMin = 2 * 60 * 1000; // 2 minutes in milli seconds 

    /** CountDownTimer starts with 2 minutes and every onTick is 1 second */ 
    cdt = new CountDownTimer(twoMin, 1000) { 

     public void onTick(long millisUntilFinished) { 

      total = (int) ((dTotal/120) * 100); 
      bar.setProgress(total); 
     } 

     public void onFinish() { 
      // DO something when 2 minutes is up 
     } 
    }.start(); 
+1

CountdownTimerはAyncTaskの中で動作しますか? –

+0

@GauravAgarwal:いいえ、1スクリーンのソースに基づいて、デフォルトのハンドラを使用するので、それぞれの 'tick'と' finish'がメインルーパー(UI)上で呼び出されます。バックグラウンドで何かを定期的に実行したいのであれば、 'onTick'で' AsyncTask'を起動することができます – TWiStErRob

1

プログレスバーを使用する代わりにプログレスバーを使用することをお勧めします。スレッド進行中のダイアログを使用して設定することも可能です。

これを確認してくださいlink。また、公式アンドロイドブログからのリンクもあります。 Link進捗ダイアログの作成 &この2番目の例では、スレッドを使用しています。

+0

ok ...スレッド進行中のダイアログでどのように達成するのですか?同じリンクまたはサンプルをいくつか教えてください。 – OnkarDhane

+0

@Onkar: - 編集済みの回答 –

0

Onkarを使用してプログレスバーを更新することができます... AsyncTaskは、時間のかかるタスクをホストすることができ、両方と時間のかかるタスクがサブタスクに分割することができた場合は、進捗状況を報告します。 AsyncTaskは、魔法を達成するためにジェネリックスを使用します。進捗タイプは、3つの「要求された形式型パラメータ」の中間のタイプであり、<Params,Progress,Result>である。

JAL

+0

サンプルを表示することができますか? –

関連する問題