IM 试图通过 ArrayAdapter 将 admob AdView 放入 ListView。目前它加载正常,广告按预期显示在列表视图中。当我滚动时,当包含广告的行不在视图中时,应用程序会冻结。我想删除 adview 会导致一些问题。有没有办法防止这种情况?或者有没有办法检测何时从列表视图中删除一行?或者更好的是有没有一种方法不会从列表视图中清除该行并保留?
这是我在适配器 getView 方法中的内容:
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
注意:这可行,但会导致每次离开屏幕时都将添加删除并重新加载:
public int getItemViewType(int position) {
// Don't let ListView try to reuse the views.
return AdapterView.ITEM_VIEW_TYPE_IGNORE;
}