j2me:如何在TextField上使用setCommandListener?

时间:2012-12-16 23:51:05

标签: java-me command textfield midp lcdui

我想这样做,以便当我在TextField中选择特定的Form时,我会得到Command s的具体列表,

例如,

TextField:好的,取消
TextField2:确定,返回,帮助

我成功地在每个addCommand() s 上使用TextField但我无法告诉它当我激活其中一个命令时会发生什么因为有没有setCommandListener方法。

点击它时会抛出NullPointerException

我也尝试从Form获取命令,但它只接收它包含的命令,而不是TextField所拥有的命令。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

TextField是一个Item对象,要使用命令,您需要 ItemCommandListener

  

一种侦听器类型,用于接收已在Item个对象上调用的命令的通知。项目可以与Commands关联。调用此类命令时,通过调用ItemCommandListener上的commandAction()方法来通知应用程序,该方法已在项目上设置,并调用setItemCommandListener() ...

你提到NullPointerException的最可能的原因是你没有设置适当的项命令监听器(默认情况下它是null,因此当MIDP尝试调用命令操作时,有NPE)。

要获得所需内容,除了创建和添加命令外,还需要创建项命令侦听器,实现代码来处理命令,然后将文本字段与此侦听器关联:

myTextField.setItemCommandListener(myItemCommandListener);