2011-06-10 152 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被調用。