2014-05-12 1 views
0

Я пытаюсь запустить таймер при создании активности и иметь возможность сбросить таймер назад с нуля, если одна и та же кнопка нажата, но каждый раз, когда я нажимаю кнопку, которая инициирует установленный интервал, кажется, создается новый интервал, а не сбросив тот, который уже был создан. Может кто-нибудь помочь, пожалуйста? Вот мой кодКак я могу сбросить значение моего таймера при завершении таймера?

timer = (TextView) findViewById(R.id.timer_value); 

Count = new CountDownTimer(time, 1000) { 

     public void onTick(long millisUntilFinished) { 

      timer.setText("Time Left: " + millisUntilFinished/1000); 
     } 

     public void onFinish() { 
      timer.setText("OUT OF TIME!"); 
      if (time < 10000) { 
       time = 10000; 
      } 
      AlertDialog.Builder builder = new AlertDialog.Builder(
        TicTacToe.this); 
      builder.setMessage("You are Out of Time").setPositiveButton(
        "Replay", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          // reset the game environment. 

          Count.onFinish(); 
          // Count.cancel(); 
          Count.start(); 
          new_game(player_name_1); 
         } 
        }); 
      AlertDialog alert = builder.create(); 
      alert.show(); 

     } 
    }.start(); 

ответ

0

вы можете использовать таймеры

//in global 
Timer myTimer 


/** 
* its kills runnable 
*/ 
public void stopTimer(){ 
//handler.removeCallbacks(null); //it resets all timer which handler holds 
myTimer.cancel(); 
} 

public void setTimer(int time){//give it 5 for 5 secs 
final Runnable Update = new Runnable() { 

     public void run() { 
      //do sth 
     } 
    }; 

    myTimer = new Timer(); 
    myTimerTimer.schedule(new TimerTask() { 

     @Override 
     public void run() { 
      handler.post(Update); 
     } 
    }, 1000, time*1000); 
} 
+0

но у меня есть определенное время для countDownTimer, как я могу это реализовать и как мой вопрос, как остановить и сбросить значение таймера между таймерным завершением и сбросить значение таймера. Можете ли вы мне помочь сейчас @alp –

0

Если вы хотите, чтобы перезапустить таймер, удалить Count.onFinish();

Update:
я заменил AlertDialog с новой резьбой и вот код, который работает на моем эмуляторе

public class MainActivity extends Activity 
{ 
    int time = 10000; 
    CountDownTimer Count; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final TextView timer = (TextView) findViewById(R.id.timer); 

     Count = new CountDownTimer(time, 1000) { 

      public void onTick(long millisUntilFinished) { 

       timer.setText("Time Left: " + millisUntilFinished/1000); 
      } 

      public void onFinish() { 
       timer.setText("OUT OF TIME!"); 
       if (time < 10000) { 
        time = 100000; 
       } 
      } 
     }.start(); 
    } 
    public void buttonClicked(View view) 
    { 
     Log.i("Timer", "Resetting timer"); 
     Count.cancel(); 
     Count.start(); 
    } 

} 
+0

, но его не работает, создавая новый таймер с разным значением, и я удаляю его, но его не работает. –

+0

Позвольте мне проверить, я дам вам знать –

+0

Но @helleye, поскольку я задал вопрос, что i нужно перезапустить его с нуля до завершения таймера с помощью нажатия кнопки. Пожалуйста, подумайте об этом и спасибо за вашу помощь, но это не моя проблема, для которой «Решение, которое вы мне предоставили» –