java - 如何在RecyclerView中每3个项目放置一次原生广告?

标签 java android admob

我想放置来自 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);
}

最佳答案

就我个人而言,我是通过让我的回收器 View 持有一个界面来做到这一点的。然后有两个实现用于普通回收器 View 项和 AdHolder 项。然后我每 3 个项目插入一个 AdHolder。

您还可以按照此 Codelab 进行操作,它执行类似的操作: https://codelabs.developers.google.com/codelabs/admob-native-advanced-feed-android/#0

关于java - 如何在RecyclerView中每3个项目放置一次原生广告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62053439/

相关文章:

android - 如何创建 admob RewardedVideoAd 的新自定义实例?

java - 适用于 Java 和 Javascript 的兼容 AES 算法

android - 使用 android 媒体播放器进行渐进式视频下载

android - 如何在android中使用achartengine将十字准线(垂直线)放在折线图中

android - 单击 Webview 中的 textview 会导致屏幕跳转和 Webview 滚动变为无限

cordova - 如何在PhoneGap中添加谷歌广告插页式广告?

java - 更新表中的确定字段

java - 如何将从 api 收到的响应保存在 arraylist 上?

java - Drools - 检查 wm 中是否存在多个具有不同属性的事件

ios - Admobs 广告仅在模拟器上显示