开发者

Blackberry ad-banner click

How to add click event in blackberry banner ad.

Here is my code:

public class DemonstrationScreen extends MainScreen 
{  
    public DemonstrationScreen()
    {
      final Bitmap customPlaceholder = Bitmap.getBit开发者_运维百科mapResource("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);

    }  
}

this is not working. when i click the ad, then its not showing anythig.


I do think this is unexpected/improper usage of Banner.

However you could potentially do this by overriding navigationClick() at 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);
    }  
}

But since RIM made Banner class final you can not do this. So I think your request has no simple solution. A hard solution would be to "figure out" what field is clicked at the MainScreen level (in navigationClick of MainScreen you can check what field is in focus and do smth).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜