Я напишу это шаг за шагом
1. Создайте свой собственный адаптер (с помощью расширения BaseAdapter), который будет отображаться в виде элементов списка
2. Создайте другой файл ресурсов макета для показа нативной рекламы (дизайн должен быть похож на пользовательский адаптер, созданный на предыдущем шаге)
3. В методе getView выполните следующие действия (для показа рекламы на 2-й позиции)
if (position == 1) {
rowView = inflater.inflate(R.layout.native_ad_adapter, null);
NativeExpressAdView adView = (NativeExpressAdView)rowView.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
} else {
rowView = inflater.inflate(R.layout.my_custom_list, null);
TextView bigtxt = (TextView) rowView.findViewById(R.id.txt1);
...
...
}
Здесь ваш пользовательский адаптер my_custom_list
Вы увидите, что реклама загружается. Но есть небольшая проблема, фактический элемент списка в позиции 1 не будет показан.
4. Для этого добавьте дополнительный элемент в список перед заполнением ListView. Я использовал ArrayList, чтобы я мог сделать это легко. Мой подход заключается в следующем
arrayList1.add(1,"ad here");
listview1.setAdapter(new MyAdapter(callerView.getContext(), arrayList1.toArray(new String[arrayList1.size()])));