Android - problemas con temporizador

   
Vista:
Imágen de perfil de Martin

problemas con temporizador

Publicado por Martin (1 intervención) el 28/06/2017 21:20:30
Hola! estoy empezando con Android, y me puse a hacer un temporizador, pero tengo un problema al hacerlo.

cree 3 edittext, (hora, minuto y segundo) y la idea es editarlos para que al poner "comenzar" empiece a descontar el valor que le puse hasta llegar a cero.

ahora el tema es el siguiente, para esto tengo que crear un objeto de tipo CounterClass, si lo genero dentro de onCreate() voy a poder usarlo y pararlo, pero no seteando los valores de los edittext, tengo que tener un valor predefinido.
si lo genero dentro del boton "comenzar" voy a poder utilizarlo seteando los valores de los edittext, pero no voy a poder cancelarlo desde el boton "parar" ya que es una instancia de otro metodo.

creo que lo que deberia es que lo cree al principio pero que espere hasta que los valores de los edittext esten seteados.

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.countdown);
btnStart = (Button)findViewById(R.id.btnCD_start);
btnStop = (Button)findViewById(R.id.btnCD_stop);

et_seconds = (EditText) findViewById(R.id.et_seconds);
et_minutes = (EditText)findViewById(R.id.et_minutes);
et_hours = (EditText)findViewById(R.id.et_hour);
counter = (TextView)findViewById(R.id.counter);

final CounterClass timer = new CounterClass(800000,1000); //aca le puse un valor fijo 800000

btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

timer.start();
}
});

btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
}
});

tengo un metodo que suma horas, minutos y segundos en millisegundos que irian en lugar del valor fijo.

muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problemas con temporizador

Publicado por Carlos Ismael (38 intervenciones) el 29/06/2017 05:31:54
No se si entiendo del todo pero mi solución es que solo crees CounterClass como variable de instancia algo asi como...


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
public class TuClase extends AppCompact{
 
CounterClass timer;
 
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.countdown);
btnStart = (Button)findViewById(R.id.btnCD_start);
btnStop = (Button)findViewById(R.id.btnCD_stop);
 
et_seconds = (EditText) findViewById(R.id.et_seconds);
et_minutes = (EditText)findViewById(R.id.et_minutes);
et_hours = (EditText)findViewById(R.id.et_hour);
counter = (TextView)findViewById(R.id.counter);
 
 
 
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
 
start(et_hours.getText().toString(), et_minutes.getText().toString(), et_seconds.getText().toString());
}
});
 
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
}
});
 
}
 
public void start(String hour, String minutes, String seconds){
timer = new CounterClass(hour,minutes,seconds); //agregarle el valor de los EditText y parsearlo a lo que sea (int, double) si es necesario;
timer.start();
}
 
}


De esta forma tu objeto ""timer"" sera creado nuevamente cada vez que pulses el boton start con los diferentes valores de los EditTexts que tienes y podra ser cancelado con timer.cancel al pulsar el btnStop.
No se si eso es lo que tratas de hacer..
Saludos lml.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar