2011-08-17 90 views
0

如何在黑莓橫幅廣告中添加點擊事件。
這裏是我的代碼:黑莓廣告橫幅點擊

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

我的確認爲這是意外/ Banner的不當使用。

但是你可能通過Banner覆蓋navigationClick()做到這一點:

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級決賽中,你不能做到這一點。所以我認爲你的請求沒有簡單的解決方案。一個困難的解決辦法是「找出」在MainScreen級別點擊什麼字段(在navigationClickMainScreen中,您可以檢查哪些字段在焦點上並進行排序)。

+0

我們無法在Banner.i上添加覆蓋navigationClick(),只是將重點放在bannerad上。 bannerAd.setFocusOverrideFlag(真);它不工作。那麼如何實現呢? – Signare