Blackberry рекламный баннер нажмите - PullRequest
0 голосов
/ 17 августа 2011

Как добавить событие клика в баннерной рекламе blackberry.
Вот мой код:

public class DemonstrationScreen extends MainScreen 
{  
    public DemonstrationScreen()
    {
      final Bitmap customPlaceholder = Bitmap.getBitmapResource("arrow.png");
      Banner bannerAd = new Banner(add.APID,null,10000, customPlaceholder);
      bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);
      VerticalFieldManager vfm = new VerticalFieldManager
                                 (VerticalFieldManager.NO_VERTICAL_SCROLL
                                 | VerticalFieldManager.NO_VERTICAL_SCROLLBAR
                                 | VerticalFieldManager.USE_ALL_WIDTH);
      HorizontalFieldManager hfm = new HorizontalFieldManager
                                 (HorizontalFieldManager.FIELD_HCENTER
                                 | HorizontalFieldManager.FIELD_VCENTER);
      hfm.add(bannerAd);
      vfm.add(hfm);
      add(vfm);

      FieldChangeListener listener=new FieldChangeListener() {
            public void fieldChanged(Field field, int context) {

                if(field==bannerAd){
                    Dialog.alert("Banner clicked");
                }
            }};
            bannerAd.setChangeListener(listener);

    }  
}

это не работает.когда я нажимаю на объявление, оно ничего не отображается.

1 Ответ

1 голос
/ 17 августа 2011

Я думаю, что это неожиданное / неправильное использование Banner.

Однако вы могли бы потенциально сделать это, переопределив navigationClick() на Banner:

public class DemonstrationScreen extends MainScreen 
{  
    public DemonstrationScreen()
    {
      final Bitmap customPlaceholder = Bitmap.getBitmapResource("arrow.png");
      Banner bannerAd = new Banner(add.APID,null,10000, customPlaceholder) {
          protected boolean navigationClick(int status, int time) {
              Dialog.alert("Banner clicked");
              return super.navigationClick(status, time);
          }
      };
      bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);
      VerticalFieldManager vfm = new VerticalFieldManager
                                 (VerticalFieldManager.NO_VERTICAL_SCROLL
                                 | VerticalFieldManager.NO_VERTICAL_SCROLLBAR
                                 | VerticalFieldManager.USE_ALL_WIDTH);
      HorizontalFieldManager hfm = new HorizontalFieldManager
                                 (HorizontalFieldManager.FIELD_HCENTER
                                 | HorizontalFieldManager.FIELD_VCENTER);
      hfm.add(bannerAd);
      vfm.add(hfm);
      add(vfm);
    }  
}

Но так какRIM сделал Banner финал класса вы не можете сделать это.Поэтому я думаю, что ваш запрос не имеет простого решения.Трудным решением было бы «выяснить», какое поле нажимается на уровне MainScreennavigationClick из MainScreen вы можете проверить, какое поле находится в фокусе и выполнить что-то).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...