Настройка слушателя onchange для текстового поля в j2me - PullRequest
1 голос
/ 24 октября 2011

Можно ли установить слушателя onchange для текстового поля в j2me?

1 Ответ

2 голосов
/ 25 октября 2011

уверен.Для этого используйте 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() + "]");
    }
});

Следует иметь в виду подробности того, как itemStateChanged вызывается в документации API:

... когда пользователь ... вводит или изменяет значение в TextField ...

Устройство принимает решение, когда оно считает, что новое значение было введено в элемент.Например, реализации редактирования текста в TextField сильно различаются в зависимости от устройства.

В общем случае не ожидается, что слушатель будет вызываться после каждого изменения.Однако, если значение элемента было изменено, будет вызван слушатель, чтобы уведомить приложение об изменении, прежде чем оно будет вызвано для изменения другого элемента, и до того, как команда будет доставлена ​​в CommandListener формы.Для реализаций, которые имеют концепцию фокуса ввода, слушатель должен вызываться не позднее, чем когда фокус переходит от элемента, состояние которого было изменено.Слушатель следует вызывать только в том случае, если значение элемента действительно было изменено.

Слушатель не вызывается, если приложение изменяет значение интерактивного элемента.

...