我有一个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
答案 0 :(得分:3)
navigationClick()方法应该仅针对它所附加的对象触发,而不像可以附加到多个Field的FieldChangeListener,因此更改的Field作为参数传递。如果要调试它,可以使用System.out.println(field.toString()),它应该为您提供所点击内容的类名。此外,您可能想尝试使用getLeafWithFocus(),以防getFieldWithFocus()返回具有焦点的字段的管理器。
答案 1 :(得分:1)
只需覆盖navigationClick
和ListField
的{{1}}。然后,在每个被覆盖的方法中,您只会收到与方法“所有者”相关的点击次数(例如ObjectChoiceField
或ListField
)。