Событие клика на BitmapField - PullRequest
       20

Событие клика на BitmapField

0 голосов
/ 18 апреля 2011

У меня проблема с растровым полем.Я пытаюсь создать событие щелчка в поле «Растровое изображение».

Пока это работает, но проблема в том, что событие генерируется в любом месте экрана, когда я устанавливаю его в определенном поле.Поскольку мое приложение имеет несколько растровых изображений на одном экране, ими сложно управлять.

Вот мой кусок кода:

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

1 Ответ

1 голос
/ 18 апреля 2011

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

...