在适配器中膨胀视图
inflate view in 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 广告显示,但当我收到请求失败时 Google广告现在完全显示。
为了测试,我单独放置了这段代码,它也能正常工作。
mConvertView = vi.inflate(R.layout.banner_container, parent, false);
AdView mAdView = (AdView) mConvertView.findViewById(R.id.adView);
mAdView.loadAd(AdUtils.getAdmobRequestForCurrentUser());
加载失败时我做错了什么 google 广告没有显示?
您可以尝试这样做:
private AdRequest adRequest;
adRequest = new AdRequest.Builder().build();
IMBanner bannerAdView = (IMBanner)mConvertView.findViewById(R.id.bannerView);
AdView mAdView = (AdView) mConvertView.findViewById(R.id.adView);
adRequest = new AdRequest.Builder().build();
AdUtils.getInstance().loadInMobiBanner(bannerAdView, new IAdListener() {
@Override
public void onFail() {
mAdView.loadAd(adRequest);
}
});
在 getView 中 运行 它不是一个好习惯。每次滚动时,getView()
方法都会 运行 相当频繁。相反,运行 它在 getView()
之外,并将结果附加到布尔变量中。
稍后在 getView()
中,您可以使用该布尔变量来确定要膨胀显示哪个视图,或者不显示任何视图。
在我的代码中我有这个条件。如果 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 广告显示,但当我收到请求失败时 Google广告现在完全显示。
为了测试,我单独放置了这段代码,它也能正常工作。
mConvertView = vi.inflate(R.layout.banner_container, parent, false);
AdView mAdView = (AdView) mConvertView.findViewById(R.id.adView);
mAdView.loadAd(AdUtils.getAdmobRequestForCurrentUser());
加载失败时我做错了什么 google 广告没有显示?
您可以尝试这样做:
private AdRequest adRequest;
adRequest = new AdRequest.Builder().build();
IMBanner bannerAdView = (IMBanner)mConvertView.findViewById(R.id.bannerView);
AdView mAdView = (AdView) mConvertView.findViewById(R.id.adView);
adRequest = new AdRequest.Builder().build();
AdUtils.getInstance().loadInMobiBanner(bannerAdView, new IAdListener() {
@Override
public void onFail() {
mAdView.loadAd(adRequest);
}
});
在 getView 中 运行 它不是一个好习惯。每次滚动时,getView()
方法都会 运行 相当频繁。相反,运行 它在 getView()
之外,并将结果附加到布尔变量中。
稍后在 getView()
中,您可以使用该布尔变量来确定要膨胀显示哪个视图,或者不显示任何视图。