Как размещать нативную рекламу каждые 3 элемента в RecyclerView? - PullRequest
0 голосов
/ 28 мая 2020

Я хочу разместить нативную рекламу или баннеры из Google AdMob. Его следует размещать каждые 3 элемента в моем RecyclerView. Я нашел несколько решений, но, к сожалению, это не сработало. Спасибо за вашу помощь.

Основной класс:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_benefits);
    toolbar = findViewById(R.id.toolbar_benefits);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mRecyclerView = findViewById(R.id.benefits_recycler);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    myAdapter = new MyAdapter(this, benefitsList());
    mRecyclerView.setAdapter(myAdapter);
}

MyAdapter класс:

public class MyAdapter extends RecyclerView.Adapter<MyHolder> {

Context c;
ArrayList<Model> models;

public MyAdapter(Context c, ArrayList<Model> models) {
    this.c = c;
    this.models = models;
}

@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.single_list_item, null);
    return new MyHolder(view);
}

@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
    myHolder.mTitle.setText(models.get(i).getTitle());
    myHolder.mDescription.setText(models.get(i).getDesc());
    myHolder.mImageView.setImageResource(models.get(i).getImage());

}

@Override
public int getItemCount() {
    return models.size();
}

MyHolder класс:

public class MyHolder extends RecyclerView.ViewHolder {

ImageView mImageView;
TextView mTitle, mDescription;

public MyHolder(@NonNull View itemView) {
    super(itemView);

    this.mImageView = itemView.findViewById(R.id.rowImage);
    this.mTitle = itemView.findViewById(R.id.rowTitle);
    this.mDescription = itemView.findViewById(R.id.rowDescription);
}

1 Ответ

0 голосов
/ 28 мая 2020

Лично я сделал это, заставив мое представление ресайклера содержать интерфейс. Затем есть две реализации для обычного элемента представления ресайклера и элемента AdHolder. Затем я просто вставил AdHolder через каждые 3 элемента.

Вы также можете следовать этой кодовой таблице, которая делает нечто подобное: https://codelabs.developers.google.com/codelabs/admob-native-advanced-feed-android/#0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...