我想这样做,以便当我在TextField
中选择特定的Form
时,我会得到Command
s的具体列表,
TextField:好的,取消
TextField2:确定,返回,帮助
我成功地在每个addCommand()
s 上使用TextField
但我无法告诉它当我激活其中一个命令时会发生什么因为有没有setCommandListener
方法。
点击它时会抛出NullPointerException
。
我也尝试从Form
获取命令,但它只接收它包含的命令,而不是TextField
所拥有的命令。
如何解决这个问题?
答案 0 :(得分:2)
TextField是一个Item
对象,要使用命令,您需要 ItemCommandListener :
一种侦听器类型,用于接收已在Item个对象上调用的命令的通知。项目可以与
Commands
关联。调用此类命令时,通过调用ItemCommandListener
上的commandAction()方法来通知应用程序,该方法已在项目上设置,并调用setItemCommandListener() ...
你提到NullPointerException
的最可能的原因是你没有设置适当的项命令监听器(默认情况下它是null,因此当MIDP尝试调用命令操作时,有NPE)。
要获得所需内容,除了创建和添加命令外,还需要创建项命令侦听器,实现代码来处理命令,然后将文本字段与此侦听器关联:
myTextField.setItemCommandListener(myItemCommandListener);