2016-10-23 15 views
0

私はAndroidアプリを作成し、タイムカウンターを作りたいと思います。長いデータを格納する2つの長い変数があります。私はAndroidでカウンタータイムを作りたい

2回目の歩行を開始するときは、歩行を2回開始しなければなりません。このプロセスが完了したら、4回歩いてください。

public void Counter(long runsecond, final long walksecond) { 
    new CountDownTimer(runsecond, 1000) { 

     public void onTick(long millisUntilFinished) { 
      showtext.setText("seconds remaining: " + millisUntilFinished/1000); 
     } 

     public void onFinish() { 
      showtext.setText("done!"); 
      new CountDownTimer(walksecond, 1000) { 

       public void onTick(long millisUntilFinished) { 
        mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
       } 

       public void onFinish() { 
        showtext.setText("done!"); 
       } 
      }.start(); 


     } 
    }.start(); 
} 

です。それは一度だけカウントされます。どうすればこの問題を修正できますか?

+0

あなたが達成したいことは明確ではありません。ランニング/ウォーキングサイクルを2回繰り返したいのですか?簡単に言えば、 'X秒間実行 - > Y秒間歩く - > X秒間実行 - > Y秒間歩く' – skywall

+0

はい、あなたが言ったように。どのようにできるのか? – vahitdurmus

答えて

0

私はあなたのニーズを満たすかもしれないと思います。実行カウンタとウォークカウンタの秒数は設定可能です。リピートレートの指定、両方のカウンタの実行回数。

public enum CounterType { 
    RUN_COUNTER, 
    WALK_COUNTER 
} 

private void start() { 
    int runSeconds = 5; 
    int walkSeconds = 5; 
    int repeatRate = 4; // 2 - run, 2 walk 

    startCount(runSeconds, walkSeconds, repeatRate, RUN_COUNTER); 
} 

private void startCount(final int runSeconds, final int walkSeconds, final int repeatRate, final CounterType actualCounter) { 
    if (repeatRate == 0) { 
     return; 
    } 

    int actualSeconds = 0; 
    if (actualCounter == RUN_COUNTER) { 
     actualSeconds = runSeconds; 
    } else if (actualCounter == WALK_COUNTER) { 
     actualSeconds = walkSeconds; 
    } 

    new CountDownTimer(actualSeconds * 1000, 1000) { 
     @Override public void onTick(long millisUntilFinished) { 
      Log.d("Counter - onTick", actualCounter.toString() + ": millis remaining: " + millisUntilFinished); 
     } 

     @Override public void onFinish() { 
      Log.d("Counter - onFinish", actualCounter.toString()); 
      CounterType nextCounter = actualCounter == RUN_COUNTER ? WALK_COUNTER : RUN_COUNTER; 
      startCount(runSeconds, walkSeconds, repeatRate - 1, nextCounter); 
     } 
    }.start(); 
} 
関連する問題