1

TextFieldで特定のものを選択するFormと、の特定のリストが表示されるようにしたかったCommandのですが、

たとえば、
TextField:OK、キャンセル
TextField2:OK、戻る、ヘルプ

addCommand()そして、それぞれでを使用して成功しましたが、これらのコマンドTextFieldのいずれかをアクティブにすると、メソッドがないため、どうなるかわかりませんsetCommandListener

クリックするとスローしNullPointerExceptionます。

私も彼らからコマンドを取得しようとしましFormたが、それはそれが持っているコマンドではなく、それが含んでいるコマンドだけを受け取っていますTextField

これを回避する方法は?

4

1 に答える 1

2

TextField はオブジェクトであり、コマンドを使用するにはItemCommandListenerItemが必要 です:

Itemオブジェクトで呼び出されたコマンドの通知を受信するためのリスナー タイプ。アイテムをCommands関連付けることができます。このようなコマンドが呼び出されると、setItemCommandListener()への呼び出しで Item に設定されたcommandAction()メソッドが呼び出されることで、アプリケーションに通知されます ...ItemCommandListener

あなたが言及した最も可能性の高い理由NullPointerExceptionは、適切なアイテム コマンド リスナーを設定していないことです (デフォルトでは null であるため、MIDP がコマンド アクションを呼び出そうとすると、NPE が発生します)。

必要なものを取得するには、コマンドの作成と追加に加えて、アイテム コマンド リスナーを作成し、その中でコマンドを処理するコードを実装してから、テキスト フィールドをこのリスナーに関連付ける必要があります。

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