在Blackberry上的多个项目的navigationClick()问题

时间:2011-04-12 12:13:13

标签: blackberry 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

2 个答案:

答案 0 :(得分:3)

navigationClick()方法应该仅针对它所附加的对象触发,而不像可以附加到多个Field的FieldChangeListener,因此更改的Field作为参数传递。如果要调试它,可以使用System.out.println(field.toString()),它应该为您提供所点击内容的类名。此外,您可能想尝试使用getLeafWithFocus(),以防getFieldWithFocus()返回具有焦点的字段的管理器。

答案 1 :(得分:1)

只需覆盖navigationClickListField的{​​{1}}。然后,在每个被覆盖的方法中,您只会收到与方法“所有者”相关的点击次数(例如ObjectChoiceFieldListField)。