Arama butonu
Bu konudaki kullanıcılar: 1 misafir
0
Cevap
258
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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< 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.