1

onchangeリスナーをj2meのテキストフィールドに設定することは可能ですか?

4

1 に答える 1

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() + "]");
    }
});

itemStateChangedAPI ドキュメントごとに呼び出される方法の詳細を覚えておく価値があります。

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

新しい値がアイテムに入力されたと見なすタイミングを決定するのは、デバイス次第です。たとえば、TextField 内のテキスト編集の実装は、デバイスによって大きく異なります。

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

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

于 2011-10-24T20:24:54.137 に答える