Chronometer en android studio
Publicado por Cesar (5 intervenciones) el 25/06/2017 21:36:33
Buenas tardes , llevo un par de dias atascado con un problema en una pequeña app que estoy desarrollando ...
Desde el onCreate de mi app tengo un boton que llama a un metodo que se llama empezar asalto , si pulso el boton antes de que los 12 segundos que tengo asignados a la variable timeRoundSelected todo va bien ... el problema viene cuando dejo que el timpo se agote ... el contador llega a los 12 segundos y se para , el boton cambia el texto a "START" para volver a iniciar el boton . Pero si esta vez pulso el boton aunque el contador si vuelve a iniciar el texto del boton no cambia a STOP para indicar que podemos pararlo ... no lo entiendo la verdad ... si entra en el metodo cronoStart() y reinicia el chronometer por que no cambia el texto del boton ?? .
Un Saludo a todos y gracias .
Desde el onCreate de mi app tengo un boton que llama a un metodo que se llama empezar asalto , si pulso el boton antes de que los 12 segundos que tengo asignados a la variable timeRoundSelected todo va bien ... el problema viene cuando dejo que el timpo se agote ... el contador llega a los 12 segundos y se para , el boton cambia el texto a "START" para volver a iniciar el boton . Pero si esta vez pulso el boton aunque el contador si vuelve a iniciar el texto del boton no cambia a STOP para indicar que podemos pararlo ... no lo entiendo la verdad ... si entra en el metodo cronoStart() y reinicia el chronometer por que no cambia el texto del boton ?? .
Un Saludo a todos y gracias .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public void empezarAsalto() {
final float starttime = SystemClock.elapsedRealtime();
crono.setBase(SystemClock.elapsedRealtime());
if (!estado) {
cronoStart();
crono.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
float elapsedTime = SystemClock.elapsedRealtime();
if (elapsedTime - starttime >= Integer.parseInt(timeRoundSelected)) {
cronoStop();
}
}
});
} else {
cronoStop();
}
}
private void getPrefers() {
SharedPreferences _sPref = PreferenceManager.getDefaultSharedPreferences(this);
timeRoundSelected = _sPref.getString("timeRoundsKey", "");
}
public void cronoStart(){
btnStartStop.setText("STOP");
btnStartStop.setTextSize(30);
estado=true;
crono.setBase(SystemClock.elapsedRealtime());
crono.start();
}
public void cronoStop() {
btnStartStop.setText("START");
btnStartStop.setTextSize(30);
estado = false;
crono.stop();
}
Valora esta pregunta


0