Criando um timer para relógio |
Top Previous Next |
|
Activity
package com.junior.crono;
import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button;
public class CronometroActivity extends Activity {
private Button btIniciar; private Timer timer; private long startTime;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main);
// associa widgets visuais com os ponteiros btIniciar = (Button) findViewById(R.id.btIniciar);
// botão iniciar/parar btIniciar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { botaoIniciarParar(); } }); }
public void botaoIniciarParar() {
// se o text do botão for "parar" trocar para iniciar e pára o timer if (btIniciar.getText().equals("Parar")) { btIniciar.setText("Iniciar"); timer.cancel(); } else { ativarTimer(); } }
public void ativarTimer() {
// troca o text do botão para "Parar" btIniciar.setText("Parar");
// salva a tempo atual na variavel startTimer startTime = System.currentTimeMillis();
// cria um timer timer = new Timer();
// associa o timer com um task timer.schedule(new TimerTask() {
// durante o "run" ele chamará o método procedimentoTimer() @Override public void run() { procedimentoTimer(); } }, 0, 500); // a cada 500 milisegundos e espera 0 segundos para começar
}
// a cada 500 miliseg ele chama o runOnUiThread public void procedimentoTimer() { this.runOnUiThread(Timer_Tick); }
private Runnable Timer_Tick = new Runnable() { public void run() {
// verifica a diferença de agora - tempo de inicio long millis = System.currentTimeMillis() - startTime;
// separa os segundos e minutos int segundos = (int) (millis / 1000); int minutos = segundos / 60; segundos = segundos % 60;
// coloca no textView String tempo = String.format("%d:%02d", minutos, segundos); } }; }
main.xml
Basta um botão chamado btIniciar
|