2013-12-14 4 views
0

По какой-то причине, когда я пытаюсь обновить свой TextView, чтобы показать, сколько секунд осталось. Но почему-то сейчас он не работает.TextView не отображает таймер

public class MainActivity extends Activity { 
private int index=0; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    final int[] Times= {6000,3000,7000,3000,4000,6000,3000}; 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button button = (Button) findViewById(R.id.button1); 
    final TextView textview =(TextView)   findViewById(com.example.countdowntest.R.id.textView); 
    button.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      if(index<Times.length){ 
      CountDownTimer timer = new CountDownTimer(
        Times[index], 0) { 
        public void onTick(long millisUntilFinished) { 
         textview.setText("seconds remaining: "+ millisUntilFinished/1000); 
        } 

        public void onFinish() { 
         textview.setText("done!"); 
        index++; 
        } 

       }.start(); 
      } 
      } 
    }); 
    } 
} 

Он должен отображать обновляемые секунд до тех пор, пока не закончится, потому что это все в рамках метода OnClick, который не заканчивается, пока таймер не достигнет нуля.

+0

Ваш отсчет интервала Вниз 0 'CountDownTimer (длинный millisInFuture, длинный countDownInterval)' – Raghunandan

ответ

1

Ваш countDownInterval является 0

CountDownTimer(long millisInFuture, long countDownInterval) 

Что вы имеете

new CountDownTimer(Times[index], 0) { // second param to the constructor is 0. 

Должно быть

new CountDownTimer(30000, 1000) // whatever value you like 

http://developer.android.com/reference/android/os/CountDownTimer.html

+1

Оо ничего себе, спасибо. Забыл, что второй - это интервал! Спасибо! – user1241388

0

Он не будет обновляться, потому что вы передаете 0 попробовать прохождение 1000, который будет обновлять его на 1-секундный интервал

Смежные вопросы