BlackBerry應(yīng)用開(kāi)發(fā)指南 監(jiān)聽(tīng)UI對(duì)象的改變
UI EventListeners 允許應(yīng)用程序響應(yīng)一個(gè) UI 對(duì)象的改變。這里有 3 種類型的 UI 事件監(jiān)聽(tīng)者 :
監(jiān)聽(tīng) field 屬性的變化
為了監(jiān)測(cè) field 的變化,實(shí)現(xiàn) FieldChangeListener 接口。調(diào)用 setChangeListener()來(lái)把你的實(shí)現(xiàn)指派給一個(gè) 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#
監(jiān)聽(tīng)焦點(diǎn)的改變
為了監(jiān)測(cè) field 之間焦點(diǎn)的改變,指派給他們一個(gè) FocusChangeListener 。實(shí)現(xiàn)這個(gè)FocusChangeListener,然后通過(guò)調(diào)用 setChangeListener()把你的實(shí)現(xiàn)指派給一個(gè) Field。一個(gè)FocusChangeListener 關(guān)心一個(gè)與之相關(guān)的明確的 Field 的焦點(diǎn)的獲取,失去或改變。
當(dāng) field 通過(guò)實(shí)現(xiàn) focusChanged()獲取,失去或改變焦點(diǎn)時(shí), FocusChangeListener 的實(shí)現(xiàn)應(yīng)該指明 field 將采取什么樣的動(dòng)作。
- 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#
監(jiān)聽(tīng)滾動(dòng)事件
ScrollChangeListener 接口的實(shí)現(xiàn)允許你的 field 管理器管理滾動(dòng)事件,調(diào)用 setScrollListener()將你的實(shí)現(xiàn)給一個(gè) Manager。當(dāng)水平或垂直的(或都有)滾動(dòng)值發(fā)生變化時(shí),scrollChanged()方法傳遞一個(gè)新的值。
(注:典型地,監(jiān)聽(tīng)滾動(dòng)變化沒(méi)有必要,因?yàn)槟愕膽?yīng)用程序可以監(jiān)聽(tīng) field 的焦點(diǎn)變化;盡管這樣,ScrollChangeListener 在游戲?qū)崿F(xiàn)中可能有用。)
為將監(jiān)聽(tīng)者指派給一個(gè) field,調(diào)用 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);
【編輯推薦】