2016-08-18 11 views
0

カウントダウンタイマーに使用するInteger ArrayList 'timerList'(例:-10,20、10)の値があります。Androidのカウントダウンタイマー - リストリストの値を持つArrayListの再起動タイマー

私はリストをループして、リストから次の値を使用するようにタイマーを再起動するので、10からカウントダウンしてから20にリセットし、その後すべての値まで10にリセットしますリストの中で使用されています。

私が苦労している部分は、ArrayListの値をループしています。 ArrayListから初期値を設定することができます。次に、次回の設定にonFinish()内の配列リストを使用しようとしています。

私はリスト内のどこにあるかを追跡し、次回のリスト値を得るたびに1を追加するためにint変数を作成しようとしましたが、一度カウントダウンすると、 0

これを正しく実装するためのアドバイスや例は、私が正しい方向に向かうことができない場合は別の観点から見ても大丈夫です。事前 ポール

答えて

1

おかげで、私はあなたが絶対的な天の恵みだカウントダウンタイマーの配列

public class MainActivity extends AppCompatActivity { 
    CountDownTimer[] countDownTimers; 
    int Time; 
    TextView text; 
    ArrayList<Integer> timeList; 
    int i=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     text= (TextView) findViewById(R.id.text); 
     timeList=new ArrayList<>(); 
     timeList.add(10*1000); 
     timeList.add(20*1000); 
     timeList.add(30*1000); 
     countDownTimers=new CountDownTimer[timeList.size()]; 
     for(int i=0;i<timeList.size();i++){ 
      final int finalI = i; 
      countDownTimers[i]=new CountDownTimer(timeList.get(finalI),100) { 
       @Override 
       public void onTick(long millisUntilFinished) { 
        long ms = millisUntilFinished; 
        String texts = String.format("%02d : %02d", 
          TimeUnit.MILLISECONDS.toMinutes(ms) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(ms)), 
          TimeUnit.MILLISECONDS.toSeconds(ms) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(ms))); 
        text.setText(texts); 
       } 

       @Override 
       public void onFinish() { 
        if(!((finalI +1)>=timeList.size())){ 
         countDownTimers[finalI+1].start(); 
        } 
       } 
      }; 
     } 
     countDownTimers[0].start(); 

    } 

} 
+0

を作成することで、この問題を解決しました!どうもありがとうございます!!! –

関連する問題