Я пытаюсь добавить рекламные баннеры Facebook в режиме переработчика.Я реализовал метод, получив помощь с этого сайта ... все идет хорошо, кроме одного условия.Я показываю рекламу после каждых 2 элементов в режиме переработки. Но проблема в том, что когда я добавляю первый элемент, он не отображается в позиции 1. Баннерная реклама должна отображаться в позиции 0, а контент в позиции 1. Но этот метод фактически отображает контент впозиция предыдущего контента.
public class CarsAdapter extends RecyclerView.Adapter<CarsAdapter.MyViewHolderCar>{
private Context context;
private List<Cars> carsList;
private int AD_TYPE = 0;
private int CONTENT_TYPE = 1;
int lastPosition=-1;
private BillingHelper billingHelper;
public CarsAdapter(Context context, List<Cars> carsList) {
this.context = context;
this.carsList = carsList;
billingHelper=new BillingHelper(context);
}
public Context getContext() {
return context;
}
public void setContext(Context context) {
this.context = context;
}
@NonNull
@Override
public MyViewHolderCar onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view;
if(viewType==CONTENT_TYPE){
view=LayoutInflater.from(parent.getContext()).inflate(R.layout.car_details_row,parent,false);
}
else {
view = new AdView(context, context.getString(R.string.fb_banner), AdSize.BANNER_HEIGHT_50);
float density = parent.getContext().getResources().getDisplayMetrics().density;
int height = Math.round(AdSize.BANNER_HEIGHT_50.getHeight() * density);
AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.FILL_PARENT,height);
view.setLayoutParams(params);
if (billingHelper.shouldShowAds()) ((AdView) view).loadAd();
}
return new MyViewHolderCar(view);
}
@Override
public int getItemViewType(int position) {
if (position>=0&&position % 3 == 0) return AD_TYPE;
return CONTENT_TYPE;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolderCar holder, int position) {
if (position % 3 == 0)
return;
Cars note=carsList.get(position - Math.round((position / 3) + 1));
holder.id.setText(Html.fromHtml("•"));
holder.brandDetails.setText(note.getCarBrand());
holder.modelDetails.setText(Integer.toString(note.getCarModel()));
holder.plateDetails.setText(note.getCarNum());
holder.colorDetails.setBackgroundColor(Integer.parseInt(Integer.toString(note.getCarColor())));
AnimationsUtils.setScaleAnimation(holder.itemView);
}
@Override
public int getItemCount() {
int count=carsList.size();
return count+(count/3);
}
public class MyViewHolderCar extends RecyclerView.ViewHolder{
public TextView id;
public TextView brandDetails;
public TextView modelDetails;
public TextView plateDetails;
public TextView colorDetails;
public MyViewHolderCar(@NonNull View itemView) {
super(itemView);
id=itemView.findViewById(R.id.id);
brandDetails=itemView.findViewById(R.id.brandDetails);
modelDetails=itemView.findViewById(R.id.modelDetails);
plateDetails=itemView.findViewById(R.id.plateDetails);
colorDetails=itemView.findViewById(R.id.colorDetails);
}
}
}