2011-06-10 113 views
1

我经常在黑莓开发中看到以下代码。它在一个字段上注册一个监听器,当监听器被触发时(在下面的例子中,当焦点在一个字段上时),一些代码被执行。这是设计模式的一部分吗? focusChanged如何实际调用?更改监听程序如何工作

FocusChangeListener focusListener = new FocusChangeListener() { 

      public void focusChanged(Field field, int eventType) { 
       // TODO Auto-generated method stub 

      } 

    } 
    field.setFocusListener(focusListener); 

回答

2

焦点更改由操作系统或靠近操作系统的一些BB API调用。每当有人滚动或触摸某个区域时,焦点都会改变。想想它有点像在桌面应用中通过窗口切换。

当您在控件中移动时,您的应用程序会收到焦点更改的通知,通知您的基本管理器,并在处理完成之前它会冒泡。

类似的ButtonClickListener等。他们基本上是被解雇的事件(用Windows的说法来想象它)和订阅这些事件的ChangeListeners被调用。