在适配器中膨胀视图

时间:2015-07-21 21:37:32

标签: android android-layout android-activity android-adapter

在我的代码中,我有这个结论。如果inmobi广告需要成功,则显示inmoby广告,如果显示失败则显示Google广告。

这是我的代码

@Override
  public View getView(int positionInList, View convertView, final ViewGroup parent) {
    if (adsFreq != 0 && positionInList > 0 && (positionInList + 1) % adsFreq == 0) {
      mConvertView = convertView;
      if (mConvertView == null) {
        mConvertView = vi.inflate(R.layout.banner_inmobi_container,parent,false);
      }
      IMBanner bannerAdView = (IMBanner)mConvertView.findViewById(R.id.bannerView);
      AdUtils.getInstance().loadInMobiBanner(bannerAdView, new IAdListener() {
        @Override
        public void onFail() {
          mConvertView = vi.inflate(R.layout.banner_container, parent, false);
          AdView mAdView = (AdView) mConvertView.findViewById(R.id.adView);
          mAdView.loadAd(AdUtils.getAdmobRequestForCurrentUser());
        }
      });
      return mConvertView;
    }
}

当InMobi请求成功进行inmob广告展示时,但当我收到请求失败时,GoogleAd就会显示。

对于测试,我把这些代码单独放在一起,它也可以使用。

mConvertView = vi.inflate(R.layout.banner_container, parent, false);
          AdView mAdView = (AdView) mConvertView.findViewById(R.id.adView);
          mAdView.loadAd(AdUtils.getAdmobRequestForCurrentUser());

那么当加载失败的谷歌广告没有显示时我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样做:

<archiver>

答案 1 :(得分:0)

在getView中运行它不是一个好习惯。每次滚动时,getView()方法都会经常运行。相反,在getView()之外运行它并将结果附加到布尔变量中。

稍后在getView()中,您可以使用该布尔变量来确定要展示哪个视图以显示或显示任何内容。