android - ArrayAdapter 与 admob adview ListView 崩溃

标签 android listview admob android-arrayadapter adview

IM 试图通过 ArrayAdapter 将 admob AdView 放入 ListView。目前它加载正常,广告按预期显示在 ListView 中。当我滚动时,当包含广告的行不在 View 中时,应用程序会卡住。我想删除 adview 会导致一些问题。有没有办法防止这种情况?或者有没有办法检测何时从 ListView 中删除一行?或者更好的是,有没有一种方法可以使该行不从 ListView 中清除并保留?

这是我在适配器 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 enter image description here

注意:这有效,但每次它离开屏幕时都会导致添加被删除并重新加载:

public int getItemViewType(int position) {
     // Don't let ListView try to reuse the views.
     return AdapterView.ITEM_VIEW_TYPE_IGNORE;
 }

最佳答案

仅供引用,AdMob 的条款要求屏幕上一次只能显示 1 个 AdView,因此请注意不要将 AdView 添加到每个列表项。

话虽如此,这里有一个很棒的 ListView 开源示例 adapter它是 calling code展示了如何在每 X 个项目中嵌入 AdMob 广告。适配器本身是另一个适配器对象的包装器,但会以指定的时间间隔嵌入广告。您可以将 ArrayAdapter 传递给此适配器,它会为您转换广告。

关于android - ArrayAdapter 与 admob adview ListView 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842560/

相关文章:

iphone - 如何对 jQuery Mobile iOS/Android Web 应用程序进行性能调优

Android Google Maps V2 身份验证错误

c# - 将 ListView 列值与另一个 ListView 列值进行比较,如果匹配则显示列值而不是其他列值

android - 在 Android 的 ListView 中将单击的项目居中

android - 在 Nexus 4 中使用 admob/amazon 添加时查看扭曲/模糊

ios - 与 iOS 6 一起使用的 AdMob 使应用程序崩溃(无法识别的选择器)

android - 使用 PhoneGap 创建项目时出现问题

android - 如何在android中获取 Assets 文件夹的文件路径

java - 将 ListView 点击值传递给具有共享首选项的另一个 Activity

c# - 如何在场景变化时隐藏横幅广告 Unity AdMob?