1

我想这样当我在 a 中选择一个特定TextField的时Form,我会得到一个特定的Commands 列表,

例如
TextField:确定、取消
TextField2:确定、返回、帮助

我成功地使用addCommand()了每个TextFields但我无法告诉它当我激活这些命令之一时会发生什么,因为它们没有setCommandListener方法。

NullPointerException当我点击它时它会抛出一个。

我也尝试从他们那里获取命令,Form但它只接收它包含的命令,而不是TextFields 拥有的命令。

如何解决这个问题?

4

1 回答 1

2

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

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

您提到的最可能的原因NullPointerException是您没有设置适当的项目命令侦听器(默认为空,因此当 MIDP 尝试调用命令操作时,存在 NPE)。

为了得到你想要的,除了创建和添加命令,你需要创建项目命令侦听器,实现代码来处理其中的命令,然后将你的文本字段与这个侦听器相关联:

myTextField.setItemCommandListener(myItemCommandListener);
于 2012-12-18T11:02:00.590 回答