Проблема с navigationClick () для более чем одного элемента на Blackberry

#blackberry #java-me

#ежевика #java-me

Вопрос:

У меня есть ListField и ObjectChoiceField.

Как вы определяете, какой из них выбран в методе navigationClick?

В navigationClick() методе:

 Field field = getFieldWithFocus();
if (field instanceof ListField)         // returns false
if (field instanceof ObjectChoiceField) // returns false
if (field == myListField)               // returns false
if (field == myObjectChoiceField)       // returns false
  

Ответ №1:

Метод navigationClick () должен срабатывать только для объекта, к которому он присоединен, в отличие от FieldChangeListener, который может быть присоединен к нескольким полям, и поэтому измененное поле передается в качестве параметра. Если вы хотите его отладить, вы можете использовать System.out.println (поле.toString()) и это должно дать вам имя класса того, на что нажимается. Кроме того, вы можете попробовать использовать getLeafWithFocus() на случай, если getFieldWithFocus() возвращает вам менеджер поля, в котором находится фокус.

Ответ №2:

Просто переопределите navigationClick для обоих ListField и ObjectChoiceField . Тогда внутри каждого переопределенного метода вы будете получать только клики, связанные с «владельцем» метода (например, либо ListField , либо ObjectChoiceField ).

Комментарии:

1. Я думаю, вам следует проверить руководства по Java — download.oracle.com/javase/tutorial/java/IandI/override.html