2010-08-16 43 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来改变焦点状态改变时显示的位图。

相关问题