Android ArrayAdapter与admob adview ListView崩溃
我试图通过ArrayAdapter将admob AdView放入列表视图。目前,它加载良好,并且广告按预期显示在listview中。当我滚动时,当包含广告的行不在视图中时,应用程序冻结。我想删除adview会引起一些问题。有没有办法防止这种情况?或者是否有一种方法可以检测何时从listview中删除一行?或者更好的是,有没有一种方法可以使该行不会从listview中清除并保留 以下是adapter getView方法中的内容:Android ArrayAdapter与admob adview ListView崩溃,android,listview,admob,android-arrayadapter,adview,Android,Listview,Admob,Android Arrayadapter,Adview,我试图通过ArrayAdapter将admob AdView放入列表视图。目前,它加载良好,并且广告按预期显示在listview中。当我滚动时,当包含广告的行不在视图中时,应用程序冻结。我想删除adview会引起一些问题。有没有办法防止这种情况?或者是否有一种方法可以检测何时从listview中删除一行?或者更好的是,有没有一种方法可以使该行不会从listview中清除并保留 以下是adapter getView方法中的内容: public View getView(int position,
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ChapterModel chapter = getItem(position);
LinearLayout L;
if (row == null) {
LayoutInflater inflater = (LayoutInflater) this.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.chapter_listview_ad, parent, false);
}
AdRequest request = new AdRequest();
AdView adView;
L=(LinearLayout) row.findViewById(R.id.chapter_row_layout);
adView= new AdView((Activity) this.context,new AdSize(768,90), ADDID);
adView.setAdListener(this);
adView.loadAd(request);
L.addView(adView);
return row;
}
eclipse在下图中给出了:NullPopinterException
注意:这会起作用,但会导致add在每次离开屏幕时被删除或重新加载:
public int getItemViewType(int position) {
// Don't let ListView try to reuse the views.
return AdapterView.ITEM_VIEW_TYPE_IGNORE;
}
仅供参考,AdMob的条款要求一次只能在屏幕上显示一个AdView,因此请注意不要将AdView添加到每个列表项中
话虽如此,这里是一个很棒的ListView开源示例,它展示了如何在每个X项中嵌入AdMob广告。适配器本身是另一个适配器对象的包装器,但以指定的间隔嵌入ads。您可以将您的ArrayAdapter传递到此适配器,它将为您添加广告。请查看。实现AdmobFetcher类,该类预取和存储列表中每个位置的ad块。它防止在获取广告块和滚动时冻结列表。是否要在每行中放置一个AdMob单元?在logcat中发布您得到的异常。是的,我想在一行中放置一个admob单元。其余的将是常规标题w图标。感谢你发送的链接在许多方面帮助了我。主要问题在于设置:getViewTypeCount()//需要将其设置为两种不同的行类型,而public int getItemViewType(int position)设置行的类型