2010-05-20 4 views
0

Pour mon application Blackberry, j'utilise un écran de démarrage avec une barre de progression. Je remplis la barre de progression en utilisant une minuterie et une fois la barre de progression terminée, je dois naviguer vers un autre écran.Naviguer d'un écran vers un autre écran en fonction de la période dans l'application BlackBerry

Je vérifie comme ça, où 'i' est le temps, passant de 0 à 100.

timer.cancel(); 

if(i>=99) 

UiApplication.getUiApplication().pushScreen(new TipCalculatorScreen());  

Ce code ne fonctionne pas.

Pour barre de progression J'utilise le code comme ceci:

private GaugeField percentGauge; 

    percentGauge = new GaugeField(null, 0, 100,50, GaugeField.PERCENT); 

       timer=new Timer(); 
        timer.scheduleAtFixedRate(new TimerTask(){ 
         int i=0; 

         public void run() { 
          percentGauge.setValue(i); 
           i++; 
           if(i>=99) 
           { 
            timer.cancel(); 

             //for page navigating i am given like this here screen is not navigating getting error 
           UiApplication.getUiApplication().pushScreen(new nextscreen()); 

           }  

          } 
        }, 100,100); 
+0

Pouvez-vous partager ce qui ne fonctionne pas dans ce domaine? –

Répondre

1

Vous devez apporter des modifications à l'interface utilisateur sur le thread d'interface utilisateur. La TimerTask s'exécute sur son propre thread. Au lieu de

UiApplication.getUiApplication().pushScreen(new nextscreen()); 

vous devez utiliser

UiApplication.getUiApplication().invokeLater(new Runnable() { 
    public void run() { 
     UiApplication.getUiApplication()..pushScreen(new nextscreen()); 
    } 
}); 

La mise à jour de votre contrôle de jauge doit probablement le même traitement.

+0

Merci beaucoup ....... ça marche bien –

+0

Bon à entendre :) Ici, sur stackoverflow, vous pouvez marquer une réponse comme Acceptée afin que les autres sachent que c'est une bonne réponse (et je reçois crédit pour cela). Bonne chance! –

Questions connexes