1

是否可以在 j2me 中为文本字段设置 onchange 侦听器?

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

值得牢记的是如何itemStateChanged根据 API 文档调用的详细信息:

...当用户...输入或修改 TextField 中的值...

由设备决定何时认为已将新值输入到项目中。例如,TextField 中文本编辑的实现因设备而异。

通常,不期望在每次更改后都会调用侦听器。但是,如果项目的值已更改,则将调用侦听器以通知应用程序更改,然后再调用另一个项目的更改,以及将命令传递到表单的 CommandListener。对于具有输入焦点概念的实现,应在焦点从状态已更改的项目移开时调用侦听器。仅当项目的值实际已更改时,才应调用侦听器。

如果应用程序更改交互项的值,则不会调用侦听器。

于 2011-10-24T20:24:54.137 回答