Вы можете просто переопределить navigationClick () на самом BitmapField.
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 работать как кнопка. Кроме того, вы могли бы неплохо создать свой собственный класс из этого (а не создавать анонимный класс), чтобы вы могли использовать его в будущем.