2011-10-24 6 views

答えて

2

そのためItemStateListenerを使用します。

// below assumes that 'form' contains 'textField' which changes you want to listen to 
form.setItemStateListener(new ItemStateListener() { 
    public itemStateChanged(Item item) { 
     if (item != textFiled) { 
      return; // ignore other items 
     } 
     System.out.println("contents: [" + textField.getString() + "]"); 
    } 
}); 

それはAPIドキュメントごとに呼び出されるかitemStateChangedの心の内容に保つ価値がある:

...ユーザー...はに値を入力または変更したときTextField ...

に新しい値が入力されたと判断するのはデバイスに任されています。たとえば、TextField内のテキスト の実装は、デバイスによって大きく異なります。

一般に、変更が行われるたびに の後にリスナーが呼び出されるとは限りません。ただし、アイテムの値が変更されている場合は、 リスナーが呼び出され、別のアイテムの変更が呼び出される前、およびコマンド がフォームのCommandListenerに配信される前に、変更 がアプリケーションに通知されます。 に入力フォーカスの概念がある実装の場合、リスナは、 の状態が変更された項目からフォーカスが離れるときよりも遅く、 と呼ばれる必要があります。リスナーは、アイテムの値が実際に変更された の場合にのみ呼び出される必要があります。

アプリケーションが 対話型アイテムの値を変更した場合、リスナーは呼び出されません。

関連する問題