Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Crear un temporizador de incremento en segundos en formato 00:00?

Quiero crear un segundo temporizador de incremento como un cronómetro.

Así que quiero ser capaz de mostrar los segundos y minutos de incremento en el formato 00:01 …

Google sólo trae ejemplos de reloj de 24 horas, me preguntaba si alguien me puede empezar con un ejemplo o tutorial de lo que quiero hacer?

Editar:

Esto es lo que tengo usando el cronómetro en Android hasta ahora

En onCreate ()

secondsT = 0; elapsedTimeBeforePause = 0; stopWatch.start(); startTime = SystemClock.elapsedRealtime(); stopWatch.setBase(elapsedTimeBeforePause); stopWatch.setOnChronometerTickListener(new OnChronometerTickListener(){ @Override public void onChronometerTick(Chronometer arg0) { //countUp is a long declared earlier secondsT = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000; String asText = (secondsT / 60) + ":" + (secondsT % 60); //textGoesHere is a TextView ((TextView)findViewById(R.id.time)).setText(asText); } }); 

En onDestroy ()

 @Override public void onDestroy() { inCall = false; elapsedTimeBeforePause = SystemClock.elapsedRealtime() - stopWatch.getBase(); super.onDestroy(); } 

Lo anterior se compila y se ejecuta, pero el TextView nunca se incrementa, siempre se mantiene en 0, ¿puede alguien ver por qué?

  • Programación de Android Timer vs. scheduleAtFixedRate
  • Android: ejecuta un hilo repetidamente dentro de un temporizador
  • Intentar invocar método virtual
  • Manejador o temporizador android
  • Eventos retardados en Android
  • Visibilidad de un botón en el temporizador
  • Android: contador simple del tiempo
  • Android ¿cuántos hilos puedo tener?
  • 2 Solutions collect form web for “Crear un temporizador de incremento en segundos en formato 00:00?”

    Estoy asumiendo que usted no está enterado del Chronometer androide – él tiene ya una función básica del cronómetro. Necesitas trabajar con sus peculiaridades un poco, pero no es difícil conseguir que haga lo que quieres una vez que entiendas cómo funciona.

    Hay algunas maneras de que el tiempo se calcula en el teléfono, pero los dos principales son:

    1. El "tiempo real", como ahora, según el reloj de mi computadora, es 11:23 am en Inglaterra. Sin embargo, esto puede cambiar si mi computadora se pone en contacto con un servidor de tiempo y se le dice que tiene el tiempo equivocado, o si yo estaba viajando con un ordenador portátil y cruzó un límite de zona horaria. El uso de esto causaría estragos en su cronómetro, ya que el tiempo medido podría cambiar en cualquier momento.

    2. El "tiempo transcurrido desde el arranque", que es el número de milisegundos desde que el teléfono estaba encendido. Este número no tiene ninguna relación con el tiempo real que es, pero se comportará de una manera perfectamente predecible. Esto es lo que utiliza el cronómetro Android.

    El Chronometer es esencialmente un temporizador de "recuento", comparando el actual SystemClock.elapsedRealtime() con el tiempo transcurrido () que se estableció para su hora base. La diferencia entre los dos, dividida por 1000, es el número de segundos desde que se inició el temporizador. Sin embargo, si detiene el temporizador y vuelve a iniciarlo, obtendrá un resultado contrario a la intuición: el temporizador mostrará el tiempo transcurrido como si nunca se hubiera detenido. Esto se debe a que es necesario ajustar su tiempo base para tener en cuenta el tiempo que se detuvo. Esto es simple de hacer:

     // When you're stopping the stopwatch, use this // This is the number of milliseconds the timer was running for elapsedTimeBeforePause = SystemClock.elapsedRealtime() - timer.getBase(); // When you're starting it again: timer.setBase(SystemClock.elapsedRealtime() - elapsedTimeBeforePause); 

    Edit: Aquí está el código completo para un cronómetro básico, que muestra su tiempo en un TextView en lugar del widget Chronometer declarado en su archivo XML.

     public class TestProject extends Activity { TextView textGoesHere; long startTime; long countUp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Chronometer stopWatch = (Chronometer) findViewById(R.id.chrono); startTime = SystemClock.elapsedRealtime(); textGoesHere = (TextView) findViewById(R.id.textGoesHere); stopWatch.setOnChronometerTickListener(new OnChronometerTickListener(){ @Override public void onChronometerTick(Chronometer arg0) { countUp = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000; String asText = (countUp / 60) + ":" + (countUp % 60); textGoesHere.setText(asText); } }); stopWatch.start(); } } 

    En su main.xml usted necesita tener esto

     <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/chrono" android:visibility="gone"/> 

    Hay sin duda una manera de conseguir que el cronómetro funcione sin declararlo en el archivo XML, pero el constructor Chronometer stopwatch = new Chronometer(this); No funciona correctamente.

    El código anterior muestra el tiempo transcurrido de una manera muy básica. Por ejemplo, si sólo han pasado 5 segundos, mostrará 0:5 lugar de la 0:05 que probablemente desee. La fijación de que no es difícil de hacer, pero voy a dejar que para que usted se resuelva! 🙂

    ¿Qué tal este reloj digital .

    Pero básicamente usted debe ser capaz de encontrar muchas implementaciones de java por google para palabras clave como java, cronómetro, reloj digital, …

    Usted podría echar un vistazo a Applet Cronómetro y modificar según sea necesario (Oops no fuente con éste)

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.