2016-01-18 5 views
-1

Для моего кода я использую таймер обратного отсчета, однако я добавляю секунды к нему, как только после правильного ответа таймер сбрасывается до 5 секунд. Проблема заключается в том, что текст, отображающий время, по-прежнему имеет неправильный номер, он не повторяет цифры. Например, если это был 5 второй таймер, и он идет 5,4,3, то пользователь получает это право, время будет идти 3, 3, 3, 2, 1. Вот мой обратный отсчет кодCountdowntimer onTick метод не отображает правильные секунды

n = 5000; 
time = new TextView(this); 
time.setTextColor(Color.parseColor("#FFFFFF")); 
    timer = new CountDownTimer(n, 1000) { 

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

     public void onFinish() { 
      Intent endIntent = new Intent(MainActivity.this, Endgame.class); 
      endIntent.putExtra("rounds",round); 
      MainActivity.this.startActivity(endIntent); 
     } 

    }.start(); 

Затем, если пользователь получает вопрос правильно - это та часть, которая перезапускает его

if(person == false){ 
    picturechanger(); 
    n=5000; 
    timer.onTick(5000); 

    } 

ответ

1

Try:

if(person == false){ 
picturechanger(); 
n=5000; // Not sure why u put n=5000 here..? 
if(timer != null) 
    timer.cancel(); 
timer.start(); 

}

+1

Если это треска e не является вашим окончательным решением: проверьте также, если вы одновременно используете несколько таймеров. Они все получат доступ к тому же TextView и повторяют ваш выход, как 333222111 ... – skymedium

+0

Отлично работает, большое спасибо – Spam

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