2011-04-12 28 views
0

我有一个ListField和ObjectChoiceField。navigationClick()问题上多一个黑莓项目

在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 

回答

3

的navigationClick()方法应只火它被附接到,不像FieldChangeListener其可附连到一个以上的域,所以改变的字段被传递的对象作为参数。如果你想调试它,你可以使用System.out.println(field.toString()),它应该为你提供被点击内容的类名。此外,您可能想尝试使用getLeafWithFocus()以防getFieldWithFocus()返回焦点字段的管理器。

+0

谢谢getLeafWithFocus()为我工作。 – redline 2011-04-12 16:16:06

1

对于ListFieldObjectChoiceField都只是覆盖navigationClick。然后在每个重写方法中,您只会收到与该方法的“所有者”相关的点击(例如,ListFieldObjectChoiceField)。

+0

我想你应该检查Java教程 - http://download.oracle.com/javase/tutorial/java/IandI/override.html – 2011-04-13 14:34:05