0

こんにちは私はタイマーを示すlabelFieldを表示しようとしています...ボタンがクリックされるとタイマーが開始するはずです。FieldChangeListenerを実装しているため、次のコードはfieldChanged自動生成メソッド内にあります...これはコードです:

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);

このコードには2つの問題があります。ボタンをクリックするとIllegalStateExceptionが発生します。どこから来たのかわかりませんが、このセクションにコメントしました。ここから来ています。次に、例外を受け入れた後、タイマーがスタートしますが、フォーマットは19:00:00で、思ったように00:00:00ではありません...助けてくれてありがとう!

4

1 に答える 1

0

デバイスのユーザー インターフェイスに関連するすべての操作は、 UiApplication.getEventLock()が保持されたロックを使用して実行する必要があります。

LabelFieldテキストを更新するには、次のコードを試してください。

synchronized (UiApplication.getEventLock()) {
    courseTime.setText("some text");
}
于 2012-05-17T18:57:21.190 に答える