Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 26/08/12, 13:55:49
Avatar de goltara
goltara goltara no está en línea
Usuario novato en la web
Mensajes: 29
Compra y venta: (1)
 
Fecha de registro: ene 2011
Mensajes: 29
Modelo de smartphone: samsung galaxy s
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Crear cuenta regresiva

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.

Código:
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);
        }
        
    }
Responder Con Cita


  #2  
Viejo 27/08/12, 14:29:36
Avatar de goltara
goltara goltara no está en línea
Usuario novato en la web
Mensajes: 29
Compra y venta: (1)
 
Fecha de registro: ene 2011
Mensajes: 29
Modelo de smartphone: samsung galaxy s
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Ya he conseguido aumentar el tiempo, lo que hago es que cuando suceda el evento de los comodines se cancele el timer y se cree otra vez pero con un tiempo igual al tiempo que quedaba en el primer timer + 30 segundos, funciona.

Lo que no he conseguido es crear el dialogo al terminar la cuenta, si hay alguien que sepa porque no funciona por favor que me lo diga.

Gracias!!!
Responder Con Cita
  #3  
Viejo 27/08/12, 14:37:13
Avatar de Arasthel
Arasthel Arasthel no está en línea
Cocinero veterano
Mensajes: 1,946
Compra y venta: (1)
 
Fecha de registro: jun 2009
Localización: Almería
Mensajes: 1,946
Modelo de smartphone: Nexus 5
Versión de ROM: DroidKang
Tu operador: Amena
Mencionado: 393 comentarios
Tagged: 1 hilos
El countdowntimer creo recordar que tenía un método para cuando la cuenta atrás acababa, onFinish() creo que era.

EDIT: vale, acabo de ver que efectivamente lo tienes en el método onFinish(), si es que cuando uno no está fino, no está fino. No sé si servirá de algo, pero prueba a crear un Handler y poner todo lo del dialog en un Runnable con handler.postRunnable(), quizás así sí que funcione.

Un saludo.

Última edición por Arasthel Día 28/08/12 a las 13:06:41
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:37:49 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007