适配器中的AdView构造函数问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了适配器中的AdView构造函数问题相关的知识,希望对你有一定的参考价值。
我尝试初始化广告时收到以下错误
AdView中的AdView(Context,android.util.AttributeSet)无法应用于(Context,com.google.android.gms.ads.AdSize)。
这是我的代码
public class NotesAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private static final int EMPTY_VIEW = 1;
private static final int DATA_VIEW = 2;
private static final int AD_VIEW = 3;
public List<Note> allnotes;
public NotesAdapter(List<Note> allnotes, Context context) {
this.allnotes = allnotes;
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
RecyclerView.ViewHolder holder;
if (viewType == EMPTY_VIEW) {
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.note_zero, parent, false);
holder = new emptyViewHolder(view);
} else if (viewType ==AD_VIEW) {
view = new AdView(context, AdSize.BANNER);
} else {
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.activity_note_card, parent, false);
holder = new myViewHolder(view);
}
return holder;
}
答案
AdSize没有AdView构造函数。使用:
AdView adView = new AdView(context);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
另一答案
这里:
新的AdView(上下文,AdSize.BANNER)
你正在使用com.google.android.gms.ads.AdSize
,该方法需要android.util.AttributeSet
。试试这个:
mAdView = new AdView(context);
mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId("myAdUnitId");
备查:
显然,API已经更新,现在可用的构造函数是:
AdView(上下文上下文) 从代码构建AdView。 AdView(上下文上下文,AttributeSet attrs) 从XML布局构造AdView。 AdView(Context context,AttributeSet attrs,int defStyle) 从XML布局构造AdView。
希望这可以帮助!
以上是关于适配器中的AdView构造函数问题的主要内容,如果未能解决你的问题,请参考以下文章
这个怎么解决??总是要求更改构造函数 --> mAdapter = new TabsPagerAdapter(getFragmentManager());
无法解析片段中的 ViewModelProvider 构造?
如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数