如何在RecyclerView中创建广告?

时间:2017-02-19 23:35:00

标签: java android admob

这是我的RecyclerView代码:

public RecyclerGameAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = null;
if (viewType == AD_VIEW_TYPE) {}
else{
    v = LayoutInflater.from(parent.getContext()).inflate(
                            R.layout.recyclerview_games, parent, false);
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;    
}

我不知道如何声明我在RecyclerAdapter中展示AdView的部分。

你能帮助我吗?

1 个答案:

答案 0 :(得分:3)

您想检查RecyclerView的项目类型,然后采取相应措施。使用@Override方法

@Override
public int getItemViewType(int position) 
{
    if (position % 5 == 0){
        return AD_TYPE; 
    }else{
        return CONTENT_TYPE;
    }
}

然后,您可以将内容或广告绑定到onCreateViewHolder

中的项目
View view = null;

if (viewType == AD_TYPE)
{
    view = new AdView(activity, AdSize.BANNER, ADMOB_ID);
    float density = activity.getResources().getDisplayMetrics().density;
    int height = Math.round(AdSize.BANNER.getHeight() * density);
    AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.FILL_PARENT,height);
    view.setLayoutParams(params);
    view.loadAd(new AdRequest());
}
else{
    view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item_layout, viewGroup, false);
}

RecyclerView.ViewHolder viewHolder = new RecyclerView.ViewHolder(view);
return viewHolder;

这应该可以胜任。

还可以查看this threadthis thread以获取更多输入。和你一样的问题。第二个是你的副本。在回答你的问题后找到它。