Events 单击位图字段上的事件

Events 单击位图字段上的事件,events,blackberry,click,bitmapfield,Events,Blackberry,Click,Bitmapfield,我对位图字段有问题。我正在尝试对位图字段进行单击事件 到目前为止,它还在工作,但问题是,当我在特定字段上设置它时,事件会在屏幕上的任何位置生成。由于我的应用程序在同一屏幕上有多个位图,因此很难管理它们 以下是我的代码: private BitmapField _HeaderBitmap =new BitmapField( Bitmap.getBitmapResource ("headerImg.png")); final private Bitmap _secondHeaderBitmap

我对位图字段有问题。我正在尝试对位图字段进行单击事件

到目前为止,它还在工作,但问题是,当我在特定字段上设置它时,事件会在屏幕上的任何位置生成。由于我的应用程序在同一屏幕上有多个位图,因此很难管理它们

以下是我的代码:

private BitmapField _HeaderBitmap =new BitmapField( Bitmap.getBitmapResource   ("headerImg.png")); 
final private Bitmap _secondHeaderBitmap = Bitmap.getBitmapResource("connect.PNG");
private BitmapField signup =new BitmapField (Bitmap.getBitmapResource("sign-up-btn.png"),BitmapField.FOCUSABLE);

protected boolean navigationClick(int status, int time)
{ 
   if (signup.isFocus())
     UiApplication.getUiApplication().pushScreen(new signupScreen());

   return true;
}

您只需覆盖位图字段本身上的navigationClick()

private BitmapField signup =new BitmapField (Bitmap.getBitmapResource("sign-up-btn.png"),BitmapField.FOCUSABLE) {
    protected boolean navigationClick(int status, int time) {
        if((status & KeypadListener.STATUS_TRACKWHEEL) == KeypadListener.STATUS_TRACKWHEEL || (status & KeypadListener.STATUS_FOUR_WAY) == KeypadListener.STATUS_FOUR_WAY) {    
            fieldChangeNotify(1);
            return true;
        }
        return super.navigationClick(status, time);
    }

}

然后将FieldChangeListener附加到它。在fieldChanged()方法中,只需检查context==1。在启动fieldChangeNotify()之前,还可以对状态进行一些额外的检查,但这是使位图字段像按钮一样工作的基本部分。此外,您也可以从中创建自己的类(而不是创建匿名类),以便将来使用。

这可能会帮助您确定。。Field=getFieldWithFocus();如果(field instanceof BitmapField){然后再次使用signupi进行检查,我也尝试过…请回答这个问题,但问题是相同的..private BitmapField signup=new BitmapField(Bitmap.getBitmapResource(“sign up btn.png”)、BitmapField.FOCUSABLE);受保护的布尔导航单击(int status,int time){Field f=getFieldWithFocus().getLeafFieldWithFocus();if(f==signup){UiApplication.getUiApplication().pushScreen(new signupScreen());}返回super.navigationClick(状态、时间);}