0

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

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

这是我的一段代码:

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;
}
4

1 回答 1

1

您可以只覆盖 BitmapField 本身的 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() 之前,您可以对状态进行一些额外的检查,但这是让您的 BitmapField 像按钮一样工作的基本部分。此外,您可能会从中创建自己的类(而不是创建匿名类),以便将来可以使用它。

于 2011-04-18T13:13:18.063 回答