#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