2015-10-12 4 views
0

У меня есть обратный отсчет до определенной даты с помощью андроида CountDownTimer, когда таймер закончен, он говорит «Закончено», но мне бы очень хотелось, чтобы он перезапустил таймер, но на новую дату? Это возможно? Я попытался напечатать код, который у меня уже есть в методе onFinish, но он не работает и вызывает несколько ошибок.Сброс CountDownTimer на новую дату, когда закончите?

Мой код:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
//Creating the TextView for the countdown 
    final TextView tv_countdown = (TextView) findViewById(R.id.countdown_text_view); 

//Set the Calendar Date and Time 
    Calendar start_calendar = Calendar.getInstance(); 
    Calendar end_calendar = Calendar.getInstance(); 
    end_calendar.set(Calendar.YEAR, 2015); 
    end_calendar.set(Calendar.MONTH, 10); 
    end_calendar.set(Calendar.DATE, 06); 
    end_calendar.set(Calendar.HOUR_OF_DAY, 0); 
    end_calendar.set(Calendar.MINUTE, 0); 
    end_calendar.set(Calendar.SECOND, 0); 

    long start_millis = start_calendar.getTimeInMillis(); //get the start time in milliseconds 
    long end_millis = end_calendar.getTimeInMillis(); //get the end time in milliseconds 
    long total_millis = (end_millis - start_millis); //total time in milliseconds 

    //Convert the time from milliseconds to the correct time specified 
    //1000 = 1 second interval 
    CountDownTimer cdt = new CountDownTimer(total_millis, 1000) {  
@Override 
     public void onTick(long millisUntilFinished) { 
      long days = TimeUnit.MILLISECONDS.toDays(millisUntilFinished); 
      millisUntilFinished -= TimeUnit.DAYS.toMillis(days); 

      long hours = TimeUnit.MILLISECONDS.toHours(millisUntilFinished); 
      millisUntilFinished -= TimeUnit.HOURS.toMillis(hours); 

      long minutes = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished); 
      millisUntilFinished -= TimeUnit.MINUTES.toMillis(minutes); 

      long seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished); 

      //Set the TextVew output 
      tv_countdown.setText(days + " Days" + "\n" + hours + " Hours" + "\n" + minutes + " Minutes" + "\n" + seconds + " Seconds"); } 

     //Set Output when countdown finishes 
     @Override 
     public void onFinish() { 
      tv_countdown.setText("Finished!"); 

     } 
    }; 
    cdt.start(); 

ответ

0

вы должны создать новый класс расширяет CountDownTimer в вашей деятельности и когда его закончили вы можете создать новый экземпляр

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

  • Нет связанных вопросов^_^