适配器中的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 适配器调用片段函数

在 Visual Studio 中创建构造函数的代码片段或快捷方式

将值从回收器适配器传递到android中的片段