2015-07-27 3 views
-2

Я только недавно начал играть с Java/Android.Постепенно увеличивайте целое число/увеличивайте int на регулярном интервале

Я пытаюсь сделать очень простое приложение для Android. Я хочу, чтобы число постепенно увеличивалось. Что-то вроде:

int x = 0; 

затем каждые 0,1 секунды, x ++. Тогда я могу установить текст TextView

.setText(String.valueOf(x)); 

Таким образом, в программе будет иметь целое число большее от 0 на 1 каждые 0,1 секунды.

Между тем все другие функции/код должен работать в нормальном режиме в то время как это происходит в фоновом режиме

+0

Спасибо за ссылку! Я рассмотрю его и попробую! – Friedpanseller

+0

вы можете взглянуть на это. http://stackoverflow.com/questions/6700802/android-timer-updating-a-textview-ui –

ответ

3

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

textView.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      textView.setText(String.valueOf(++x));  
      textView.postDelayed(this, 100); 
     } 
    }, 100); 

где 100 - 100 миллисекунд. Не забудьте позвонить

textView.removeCallbacks(null); 

, когда ваша деятельность приостановлена ​​

+0

Что это значит? http://i.imgur.com/iECgcpM.png, лучше вопрос, что заменить TextView? – Friedpanseller

+0

'postDelayed' возвращает boolean. удалите '(TextView)' со второй строки. Для postDelayed вам не нужен бросок, поскольку метод является частью суперкласса. – Blackbelt

+0

NVM I FIXED IT. Благодарю. пытаясь это сейчас./* .setText теперь красный, «невозможно разрешить метод setText (java.lang.string)» */ – Friedpanseller

0

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

int x = 0; 

TimerTask scanTask; 
Timer t = new Timer(); 

public void incrementValue(){ 

scanTask = new TimerTask() { 
     public void run() { 
       x++; 
     }}; 

    t.schedule(scanTask, 100, 100); 
} 

и использовать t.cancel(); когда вы хотите остановить задачу.

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