您好我正在尝试显示一个显示计时器的labelField ... 定时器应该在单击按钮时启动,因此以下代码在fieldChanged自动生成方法中,因为我实现了FieldChangeListener ... 这是代码:
Timer t = new Timer();
Date startTime = new Date();
LabelField courseTime = new LabelField()
t.schedule(new TimerTask(){
public void run() {
// TODO Auto-generated method stub
Date now = new Date();
SimpleDateFormat date = new SimpleDateFormat("HH:mm:ss");
courseTime.setText(date.formatLocal(now.getTime() - startTime.getTime()));
}}, 0, 10);
我对此代码有两个问题: 当我点击按钮时,我有一个IllegalStateException ..不知道它来自哪里 但是我已经对此部分进行了评论,它来自这里...... 然后,在我接受异常后,计时器启动,但格式是19:00:00,而不是00:00:00,就像我希望... 谢谢你的帮助!
答案 0 :(得分:0)
涉及设备用户界面的任何操作都必须使用锁定UiApplication.getEventLock()来完成。
尝试使用以下代码更新LabelField
文字。
synchronized (UiApplication.getEventLock()) {
courseTime.setText("some text");
}