Задача navigationClick () для более чем одного элемента в Blackberry - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть 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

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

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

1 голос
/ 12 апреля 2011

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

...