goltara
26/08/12, 13:55:49
Buenos dias,
Me gustaría preguntaros la mejor forma de crear una cuenta regresiva, en mi caso, solo conozco una forma de hacerlo, y es con la clase CountCountDownTimer.
Introduzco un timer con un total de 90000 milisegundos, lo que equivale a 1 minuto y medio, y un preescalado de 1000 milisegundos, cuando pasan cada preescalado se activa el metodo onTick() y es aqui donde me las he apañado para crear una cuenta regresiva.
El problema que me surge es el siguiente, mi app consiste en un juego que al adivinar varias veces la respuesta correcta se van activando comodines, cuando se acumulan 5 comodines, lo que pretendo es añadir 15 segundos a este timer, y es aqui donde no se como se hace esto.
Otro Problema es que al finalizar el Timer me gustaría que se abriese un Dialog, pero no se por que no puedo hacerlo.
Hay alguna otra forma de hacer una cuenta regresiva???
Os dejo el codigo implementado.
class Tiempo extends CountDownTimer{
int segundos=30;
int minutos=1;
/*
* la variable millisInfuture Idica el tiempo en milis de la cuenta regresiva, la variable
* countDownInterval indica como quiere que contemos el tiempo, de 1 en 1 o de x en x
*/
public Tiempo(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
Dialog d= new Dialog(this);
d.setTitle("Registro De Tiradas");
TextView text = new TextView(this);
String text="prueba";
scroll=new ScrollView(this);
scroll.addView(prueba);
d.setContentView(scroll);
d.show();
}
@Override
public void onTick(long millisUntilFinished) {
// Accion que realizamos en cada preescalado
String seg="";
String min="";
segundos--;
if(segundos<0){
segundos=59;
minutos--;
min="00";
}
if(minutos==0){
min="00";
}
if(minutos==1){
min="01";
}
if(segundos>=0 && segundos <=9){
seg="0"+segundos;
}else{
seg=segundos+"";
}
var.ttime_cj.setText(min + ":" + seg);
}
}
Me gustaría preguntaros la mejor forma de crear una cuenta regresiva, en mi caso, solo conozco una forma de hacerlo, y es con la clase CountCountDownTimer.
Introduzco un timer con un total de 90000 milisegundos, lo que equivale a 1 minuto y medio, y un preescalado de 1000 milisegundos, cuando pasan cada preescalado se activa el metodo onTick() y es aqui donde me las he apañado para crear una cuenta regresiva.
El problema que me surge es el siguiente, mi app consiste en un juego que al adivinar varias veces la respuesta correcta se van activando comodines, cuando se acumulan 5 comodines, lo que pretendo es añadir 15 segundos a este timer, y es aqui donde no se como se hace esto.
Otro Problema es que al finalizar el Timer me gustaría que se abriese un Dialog, pero no se por que no puedo hacerlo.
Hay alguna otra forma de hacer una cuenta regresiva???
Os dejo el codigo implementado.
class Tiempo extends CountDownTimer{
int segundos=30;
int minutos=1;
/*
* la variable millisInfuture Idica el tiempo en milis de la cuenta regresiva, la variable
* countDownInterval indica como quiere que contemos el tiempo, de 1 en 1 o de x en x
*/
public Tiempo(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
Dialog d= new Dialog(this);
d.setTitle("Registro De Tiradas");
TextView text = new TextView(this);
String text="prueba";
scroll=new ScrollView(this);
scroll.addView(prueba);
d.setContentView(scroll);
d.show();
}
@Override
public void onTick(long millisUntilFinished) {
// Accion que realizamos en cada preescalado
String seg="";
String min="";
segundos--;
if(segundos<0){
segundos=59;
minutos--;
min="00";
}
if(minutos==0){
min="00";
}
if(minutos==1){
min="01";
}
if(segundos>=0 && segundos <=9){
seg="0"+segundos;
}else{
seg=segundos+"";
}
var.ttime_cj.setText(min + ":" + seg);
}
}