ArrayAdapter с адобом adview ListView Crash

1

IM пытается добавить admView AdView в ListView с помощью ArrayAdapter. В настоящее время он загружается нормально, и объявление отображается в списке. Когда я прокручиваю, и когда строка, содержащая объявление, не отображается, приложение зависает. Я полагаю, что удаление рекламного объявления вызывает некоторые проблемы. Есть ли способ предотвратить это? Или есть способ обнаружить, когда строка удаляется из списка? Или еще лучше, есть ли способ, чтобы строка не очищалась от списка и сохранялась?

вот что я имею в адаптере getView Method:

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 на изображении ниже Изображение 174551

примечание: это работает, но вызывает добавление добавления для перезагрузки при каждом отключении экрана:

public int getItemViewType(int position) {
     // Don't let ListView try to reuse the views.
     return AdapterView.ITEM_VIEW_TYPE_IGNORE;
 }
  • 0
    Хотите разместить блок AdMob в каждом ряду? Опубликуйте исключение в logcat.
  • 0
    да, я хочу поставить блок AdMob в ряд. остальное будет обычным названием с иконками.
Теги:
admob
listview
android-arrayadapter
adview

2 ответа

2
Лучший ответ

FYI, условия AdMob требуют, чтобы на экране одновременно присутствовало только 1 AdView, поэтому будьте осторожны, чтобы вы не добавляли AdView к каждому элементу списка.

С учетом сказанного, вот отличный пример с открытым исходным кодом адаптера ListView и вызывающий код, который показывает, как встраивать объявления AdMob в каждый элемент X. Сам адаптер является оберткой вокруг другого объекта-адаптера, но включает рекламу с заданным интервалом. Вы можете передать свой ArrayAdapter на этот адаптер, и он разместит объявления для вас.

  • 0
    спасибо ссылка, которую вы послали, помогла мне несколькими способами. основная проблема заключается в установке: getViewTypeCount () // необходимо установить два разных типа строк, а public int getItemViewType (int position) устанавливает тип строки
0

Пожалуйста, взгляните на ответ. Admobadapter реализует класс AdmobFetcher, который предварительно загружает и сохраняет рекламные блоки по каждой позиции в списке. Он предотвращает просмотр списка при замораживании при извлечении рекламных блоков и прокрутке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню