Cómo mostrar el temporizador en android
Quiero mostrar el temporizador en TextView en el formato de [19:59]. Así que cuando hago clic en el botón de inicio, el temporizador se mostrará así por ejemplo, quiero configurar hasta 20 mintues, se mostrará como [19 : 58] [19:87]. ¿Alguien puede dar algunas ideas o código de ejemplo?
- ¿Cómo comprobar si un temporizador todavía está funcionando o no?
- Temporizador en segundo plano
- ¿Cómo puedo implementar un Timer / TimerTask que ejecuta un AsyncTask? (Androide)
- Android CountDownTimer - last onTick no llamado - ¿qué solución limpia para usar?
- Android no puede crear el controlador dentro del subproceso que no ha llamado looper.prepare ()
- Manejador o temporizador android
- Android: cómo utilizar un temporizador
- Inicie el temporizador al hacer clic en el botón
- Android: ejecuta un hilo repetidamente dentro de un temporizador
- Crear un temporizador de incremento en segundos en formato 00:00?
- ¿Cómo usar Android AlarmManager con intervalos pequeños como 1 minuto?
- Actualizar TextView utilizando Timer y ArrayList
- ¿Cómo se utiliza un TimerTask para ejecutar un hilo?
package com.example.testproject; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.widget.TextView; import android.app.Activity; public class MainActivity extends Activity { public int seconds = 60; public int minutes = 10; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Declare the timer Timer t = new Timer(); //Set the schedule function and rate t.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { TextView tv = (TextView) findViewById(R.id.main_timer_text); tv.setText(String.valueOf(minutes)+":"+String.valueOf(seconds)); seconds -= 1; if(seconds == 0) { tv.setText(String.valueOf(minutes)+":"+String.valueOf(seconds)); seconds=60; minutes=minutes-1; } } }); } }, 0, 1000); } }
Puede utilizar CountDownTimer
.
http://developer.android.com/reference/android/os/CountDownTimer.html
TextView _tv = (TextView) findViewById( R.id.textView1 ); new CountDownTimer(20*60000, 1000) { public void onTick(long millisUntilFinished) { _tv.setText("seconds remaining: " +new SimpleDateFormat("mm:ss:SS").format(new Date( millisUntilFinished))); } public void onFinish() { _tv.setText("done!"); } }.start();
Para cancelar la cancelación de llamada en el temporizador.
public final void cancel()
Cancelar la cuenta regresiva.
//start button click CountDown timer = new CountDown(180000, 1000); timer.start(); //stop button click timer.stop(); //countdown class public class CountDown extends CountDownTimer { public CountDown(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } @Override public void onTick(long millisUntilFinished) { long ms = millisUntilFinished; String text = String.format("%02d\' %02d\"", TimeUnit.MILLISECONDS.toMinutes(ms) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(ms)), TimeUnit.MILLISECONDS.toSeconds(ms) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(ms))); textViewTimer.setText(text); } @Override public void onFinish() { textViewTimer.setText("ffinish"); } }
Esto se puede hacer usando cronometer , la razón más importante es el apoyo a API 1+ , que es bastante impresionante en lugar de TextClock , que admite API 17 + .
Usted puede hacer muchas otras cosas con cronometer. Por ejemplo , puede establecer la hora de inicio en ella
Chronometer.setBase (SystemClock.elapsedRealtime ());
También puede aprender más sobre esto aquí.
Aquí tengo la clase del temporizador del uso para exhibir el contador de tiempo
public class FourthActivity extends AppCompatActivity { Button startButton, pauseButton; TextView timerValue; Timer timer; int seconds = 0, minutes = 0, hour = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fourth); bindView(); timer = new Timer(); startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { if (seconds == 60) { timerValue.setText(String.format("%02d", hour) + ":" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds)); minutes = seconds / 60; seconds = seconds % 60; hour = minutes / 60; } seconds += 1; timerValue.setText(String.format("%02d", hour) + ":" + String.format("%02d", minutes) + ":" + String.format("%02d", seconds)); } }); } }, 0, 1000); } }); } private void bindView() { timerValue = (TextView) findViewById(R.id.timerValue); startButton = (Button) findViewById(R.id.startButton); } }
En el diseño, hay un TextView y un botón para iniciar el temporizador. Tengo uso del método de clase del temporizador scheduleAtFixedRate
. El tiempo se mostrará en formato hh: mm: ss.
- ¿Cómo inicializar un arraylist de dos columnas?
- ¿Puede un teléfono Android descodificar y reproducir un archivo * .caf con códec iLBC?