我经常在黑莓开发中看到以下代码。它在字段上注册一个监听器,当监听器被触发时(在下面的示例中,当焦点位于字段上时)会执行一些代码。这是设计模式的一部分吗? focusChanged 实际上是如何调用的?
FocusChangeListener focusListener = new FocusChangeListener() {
public void focusChanged(Field field, int eventType) {
// TODO Auto-generated method stub
}
}
field.setFocusListener(focusListener);
最佳答案
焦点更改由操作系统或一些靠近操作系统的 BB API 调用。每当有人滚动或触摸某个字段时,焦点就会发生变化。可以将其想象为在桌面应用程序中的窗口中切换。
当您在控件中移动时,您的应用程序会收到焦点更改的通知,这会通知您的基础管理器,并且它会冒泡直到得到处理。
对于 ButtonClickListener 等也类似。它们基本上是被触发的事件(用 Windows 的说法来思考),并且订阅这些事件的 ChangeListener 被调用。
关于java - 变更监听器如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6308226/