我的bitmapfield有问题。我正在尝试在Bitmap字段上有一个click事件。
它到目前为止工作,但问题是当我在特定字段上设置时,事件在屏幕上的任何地方生成。由于我的应用程序在同一屏幕上有多个位图,因此很难管理它们。
这是我的代码:
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;
}
答案 0 :(得分: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()方法中只检查上下文== 1.在触发fieldChangeNotify()之前,您可以执行一些额外的状态检查,但这是让BitmapField像按钮一样运行的基本部分。此外,你可能很好地创建自己的类(而不是创建一个匿名类),以便将来可以使用它。