黑莓 - 如何使时钟倒计时并在屏幕上显示

时间:2011-12-16 03:55:42

标签: blackberry timer blackberry-eclipse-plugin clock

我正在制作一个带有问题和答案的测验应用程序。 我想让时钟倒计时(分钟+秒)并且在屏幕上显示它。 但我不能怎么做。 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

这是打印时间mm的一种解决方案:ss格式(分钟:秒)

   public class StartUp extends UiApplication{
        public static void main(String[] args) {
            StartUp start=new StartUp();
            start.enterEventDispatcher();
        }
        public StartUp() {
            pushScreen(new Timerscreen());
        }
    }

          class Timerscreen extends MainScreen
        {
            LabelField time;
            long mille=0;
            Timer timer=null;TimerTask task=null;
            public Timerscreen() {
                mille=1000*60*1;
                time=new LabelField();
                add(time);
                timer=new Timer();

                task=new TimerTask() {

                    public void run() {
                        synchronized (UiApplication.getEventLock()) {

                            if(mille!=0){
                                SimpleDateFormat date=new SimpleDateFormat("mm:ss") ;
                                System.out.println("================="+date.formatLocal(mille)+"====================="+Thread.activeCount());
                                time.setText(date.formatLocal(mille));
                                mille=mille-1000;
                            }else{
time.setText("00:00");
mille=1000*60*1;
                                timer.cancel();
                                UiApplication.getUiApplication().invokeLater(new Runnable() {
                                    public void run() {
                                        Dialog.inform("Time expaired");
                                    }
                                });

                            }
                        }
                    }
                };
                timer.schedule(task,0, 1000);
            }
        }

答案 1 :(得分:0)

同上,但有些变化:

第一集:

  

int secs = 120; //你想要多少秒;

public void callTheTimer()
{   
    label=new LabelField("\t");
    add(label);
    timer=new Timer();
    timerTask=new TimerTask() 
    {
        public void run() 
        {
            synchronized (UiApplication.getEventLock()) 
            {
                if(secs!=0)
                {
                    label.setText(""+(secs--)+" secs");                 
                }
                else
                {   
                    timer.cancel();                     
                    UiApplication.getUiApplication().invokeLater(new Runnable() 
                    {
                        public void run() 
                        {
                            label.setText("");
                            Dialog.alert("Times Up");
                            secs=120;                               
                        }           
                    });                     
                }
            }
        }
    };
    timer.schedule(timerTask, 0, 1000);
}

这就够了;