BlackBerry應用開發指南 監聽UI對象的改變
UI EventListeners 允許應用程序響應一個 UI 對象的改變。這里有 3 種類型的 UI 事件監聽者 :
監聽 field 屬性的變化
為了監測 field 的變化,實現 FieldChangeListener 接口。調用 setChangeListener()來把你的實現指派給一個 field。
- private class
- FieldListener implements implements implements
- implements
- FieldChangeListener {
- public void
- fieldChanged(Field , int context) {
- if
- (context != FieldChangeListener.PROGRAMMATIC) {
- // Perform action if user changed field.
- }
- else {
- // Perform action if application changed field.
- }
- }
- }
- // ...
- FieldListener myFieldChangeListener = new FieldListener()
- myField.setChangeListener(myFieldChangeListener);
#p#
監聽焦點的改變
為了監測 field 之間焦點的改變,指派給他們一個 FocusChangeListener 。實現這個FocusChangeListener,然后通過調用 setChangeListener()把你的實現指派給一個 Field。一個FocusChangeListener 關心一個與之相關的明確的 Field 的焦點的獲取,失去或改變。
當 field 通過實現 focusChanged()獲取,失去或改變焦點時, FocusChangeListener 的實現應該指明 field 將采取什么樣的動作。
- private class
- FocusListener implements implements implements
- implements
- FocusChangeListener {
- public void
- focusChanged(Field field, int eventType) {
- if
- (eventType == FOCUS_GAINED) {
- // Perform action when this field gains the focus.
- }
- if
- (eventType == FOCUS_CHANGED) {
- // Perform action when the focus changes for this field.
- }
- if
- (eventType == FOCUS_LOST) {
- // Perform action when this field loses focus.
- }
- }
- }
- FocusListener myFocusChangeListener = new FocusListener();
- myField.setChangeListener(myFocusChangeListener);
#p#
監聽滾動事件
ScrollChangeListener 接口的實現允許你的 field 管理器管理滾動事件,調用 setScrollListener()將你的實現給一個 Manager。當水平或垂直的(或都有)滾動值發生變化時,scrollChanged()方法傳遞一個新的值。
(注:典型地,監聽滾動變化沒有必要,因為你的應用程序可以監聽 field 的焦點變化;盡管這樣,ScrollChangeListener 在游戲實現中可能有用。)
為將監聽者指派給一個 field,調用 field 管理器上的 setScrollListener().
- private class
- ScrollListener implements implements implements
- implements
- ScrollChangeListener {
- scrollChanged(Manager manager, int newHoriztonalScroll, int newVerticalScroll){
- // Perform action.
- }
- }
- ScrollListener myScrollChangeListener = new ScrollListener();
- myManager.setScrollListener(myScrollChangeListener);
【編輯推薦】