2016-01-07 5 views
0

Я хотел бы узнать, можно ли увеличивать секунды, часы или минуты во время работы таймера. В настоящее время я реализовал этот ответ в своем приложении feedAdapter. Я также использовал такую ​​инкрементную функцию в CountDownTimer, и она действительно сработала !, но только когда вы ее приостанавливаете, а затем снова возобновляете. (Давайте не будем этого делать). Все обработчики и функции находятся в ответе этих ссылок!Как увеличить таймер при нажатии на определенную кнопку?

У меня есть 2 кнопки в адаптере: 1: запуск таймера 2: я хочу, чтобы эта кнопка увеличивала секунды или минуты и т. Д. Поблагодарила бы любую помощь, которая пройдет!

How to handle multiple countdown timers in ListView?

public void incrementExpirationTime() { 

     int defaultIncrementValue = 10000; //lets say ten seconds (this can also be a long data) 
     long productExpiryTime = getProductExpiryTime(); 
     productExpiryTime+=defaultIncrementValue; 
} 

Я также сделал это private long productExpiryTime; экземпляр, но это тоже не помогло.

+0

У вас есть 2 кнопки и текстовое изображение? Так, например, хотите, чтобы текстовое изображение за 12 секунд изменилось на 22 на клике и продолжало подсчет 23,24,25,26. Если так, то должно быть очень легко – Xjasz

+0

@Jasz no! он должен начинать с 26,25,24,23 и т. д. Пожалуйста, обратитесь к ссылке! – mikaeel

+0

@Jasz и сэр я использую 'button.setText (String);' – mikaeel

ответ

0

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

private final int INCREMENT = 10; 
private final int ONE_SECOND = 1; 
private boolean running = false; 
private int time = 100; 

public void initialize() { 
    final Button start = findViewById(R.id.start); 
    start.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      running = !running; 
      if (running) 
       updateButton(start); 
     } 
    }); 

    final Button increment = findViewById(R.id.increment); 
    increment.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (running) 
       time += INCREMENT; 
     } 
    }); 
} 

private void updateButton(final Button start) { 
    start.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      time--; 
      start.setText(String.valueOf(time)); 
      if (time == 0) { 
       Toast.makeText(getApplicationContext(), "time is up!", Toast.LENGTH_SHORT).show(); 
       running = false; 
      } else { 
       if (running) { 
        updateButton(start); 
       } 
      } 
     } 
    }, ONE_SECOND); 
} 
+0

не имеет права упоминать его в комментарии (но спасибо человеку :)); – mikaeel

+0

@mikaeel не проблема – Xjasz

+0

жаль снова! ... но как работает '(время -)' работа @Jasz – mikaeel