2011-08-17 4 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); 

    } 
} 

:
다음은 내 코드입니다. 광고를 클릭하면 anythig가 표시되지 않습니다.

답변

1

나는 이것이 예기치 않은/부적절한 사용이라고 생각합니다. 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 클래스의 마지막을 만든 이후이 작업을 수행 할 수 없습니다 당신이 잠재적으로 Banner에서 navigationClick()을 무시하여이 작업을 수행 할 수 그러나

. 그래서 귀하의 요청에 간단한 해결책이 없다고 생각합니다. 어려운 솔루션은 MainScreen 레벨에서 어떤 필드를 클릭했는지 파악하는 것입니다 ( navigationClickMainScreen입니다). 어떤 필드가 포커스인지 확인하고 smth를 수행 할 수 있습니다.

+0

Banner.i에서 navigationClick()을 재정 의하여 추가 할 수 있습니다. 이제 막 배너에 포커스를 둡니다. bannerAd.setFocusOverrideFlag (true); 그것의 작동하지 않습니다. 그래서 그것을 구현하는 방법? – Signare