2010-08-16 29 views
-1

我正在爲我的Blackberry項目添加BitmapField如何將Click事件添加到BitmapField(fieldchangeListener)?

我使用FieldChangeListener實現了我的課程,並將FieldChangeListener方法添加到我的課程中。我甚至爲該特定的位圖字段添加了setChangeListener,但它沒有響應點擊事件。

我該如何解決這個問題?

+1

你可以發佈一些代碼,以便我們可以看到你到目前爲止? – taylonr 2010-08-16 13:36:13

回答

1

首先,BitmapField在默認情況下是不可聚焦的,因此您需要繼承並覆蓋isFocusable來修復該問題。然後覆蓋navigationclick來觸發fieldChanged事件。代碼段最小字段:

import net.rim.device.api.ui.component.BitmapField; 

public class ClickableBitmapField extends BitmapField { 
    public boolean isFocusable() { 
     return true; 
    } 

    protected boolean navigationClick(int status, int time) { 
     fieldChangeNotify(0); 
     return true; 
    } 
} 

除此之外,你可能要提供當你的領域是重點的一些指示(除非你只關心觸摸屏設備)。默認實現將只在你的位圖的任何透明區域繪製一個高亮區。你可以通過覆蓋drawFocus來改變它,也可以使用onFocus和onUnfocus來改變焦點狀態改變時顯示的位圖。

相關問題