segunda-feira, 18 de janeiro de 2016

Android: Usando Cronometro

Cronometro no Android:


   Para demonstrar o uso de um cronometro no Android, resolvi codificar o sorteio de um número entre 1 e 60:
   O Android disponibiliza a classe CountDownTimer que é a classe que iremos utilizar para programar o cronometro. Criei uma classe interna chamada Cronometro que deriva da classe CountDownTimer.
   Basta implementar dois métodos: 
   O construtor, onde passamos quanto será o tempo total do cronometro e de quanto em quanto tempo o temporizador executará a ação.
   O método Tick, método onde ação será executada.
   No caso coloquei para o tempo total ser de 5 segundos e de segundo em segundo sorteio  um número e exibo na tela.
   Na tela coloquei um botão e uma TextView para exibir os números sorteados.
   Quando o usuário apertar o botão começar começa a disparar o cronômetro, parando 5 segundo depois com o número sorteado.
   Para sortear utilizei a classe Random.
   Coloquei o limite para ir até 60 no método: gerador.nextInt(61);
   O código da classe Principal está logo a seguir:

   

package br.com.nav.blog;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Random;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {


    private Button btnCron;
    private Cronometro cron = new Cronometro(5000,100);
    private TextView txtNumero;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Tratando os campos da tela        btnCron = (Button) findViewById(R.id.btnContagem);
        btnCron.setOnClickListener(this);
        txtNumero = (TextView) findViewById(R.id.txtNumero);
    }


    @Override    public void onClick(View v) {
        cron.start();
    }

    private  class Cronometro extends CountDownTimer {
 public Cronometro(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
}

  public void onTick(long millisUntilFinished) {
            Random gerador = new Random();
            int numero = gerador.nextInt(61);
            txtNumero.setText(String.valueOf(numero));

        }

    }
}



Nenhum comentário:

Postar um comentário