Arama butonu
Bu konudaki kullanıcılar: 1 misafir
0
Cevap
257
Tıklama
0
Öne Çıkarma
Android RecyclerView Icerik Aralarına Reklam Yerleştirme
M
8 yıl
Yüzbaşı
Konu Sahibi

Yapmak istediğim çoğu uygulamada olan liste elemanların arasına reklam yerleştirme işlemidir.Örneğim mackolik mobil uygulaması ya da resimli gösteriyim;
< Resime gitmek için tıklayın >
İnternette örnekleri var denedim reklam koyma işlemini gerçekleştiriyorum. Ancak yukarıdaki örnekten yola çıkarsam Item 10 elemanın göstermiyor. O indexi atlıyor. İtem 11 den devam ediyor. Şöyle de bir örneklendirme yapabilirim.

İçerik1
Reklam
İçerik2
İçerik3
İçerik4
Reklam
içerik5
içerik6

olması gerekiyor. Ancak benim aldığım sonuç;
İçerik1
Reklam
İçerik3
içerik4
Reklam
içerik6

Kodlarımda şu şekilde. Hata olabilecek yerleri koyuyorum.
 

public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
List<Content> contents = Collections.emptyList();
private Activity activity;
private static final int TYPE_ITEM = 1;
private static final int TYPE_AD = 2;

public Adapter(Activity activity, List<Content> contents) {
this.activity = activity;
this.contents = contents;
}

public static class MyViewHolder extends RecyclerView.ViewHolder {
public TextView tv_baslik, tv_icerik, tv_tarih;
//
//

public MyViewHolder(View itemView) {
super(itemView);
tv_baslik = (TextView) itemView.findViewById(R.id.tv_baslik);
tv_icerik = (TextView) itemView.findViewById(R.id.tv_icerik);
tv_tarih = (TextView) itemView.findViewById(R.id.tv_tarih);
//
//

}
}

public static class ViewHolderAd extends RecyclerView.ViewHolder {
public AdView adView;

public ViewHolderAd(View itemView) {
super(itemView);
adView = (AdView) itemView.findViewById(R.id.adViewCat);
}
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType){
case TYPE_AD:
View adview=LayoutInflater.from(parent.getContext()).inflate(R.layout.banner_admob,parent,false);
return new ViewHolderAd(adview);
case TYPE_ITEM:
default:
View itemview=LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_list_item,parent,false);
return new MyViewHolder(itemview);
}
}

@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder,final int position) {
int viewType=getItemViewType(position);
switch (viewType){

case TYPE_AD:
ViewHolderAd viewHolderAd = (ViewHolderAd) holder;
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("AAAA6E7352A8A93AC9FC2157FF2F3C")
.build();
viewHolderAd.adView.loadAd(adRequest);
Log.d("position",""+position);
break;

case TYPE_ITEM:
default:
final MyViewHolder viewHolder = (MyViewHolder) holder;
Log.d("position1",""+position);
viewHolder.tv_baslik.setText(contents.get(position).getBaslik());
viewHolder.tv_icerik.setText(Html.fromHtml(contents.get(position).getIcerik()));
viewHolder.tv_tarih.setText(contents.get(position).getTarih());
break;
}

}

@Override
public int getItemViewType(int position) {
return (position % 4 == 0) ? TYPE_AD : TYPE_ITEM;
}

@Override
public int getItemCount() {

return contents.size();
}

}



Piyasadaki örneklere bakıyorum bu sorun çoğunda var. Teşekkürler





< Bu mesaj bu kişi tarafından değiştirildi Maroon On -- 31 Ocak 2017; 2:12:23 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.