java-在onCreateViewHolder中使用不同的视图

java-在onCreateViewHolder中使用不同的视图,第1张

概述我遵循了GoogleDeveloper的YouTube频道的this教程,以实施AdMob原生快速广告.我收到以下错误:required:packagename.adapter.viewHolderfound:packagename.adapter.NativeExpressAdViewHolder这是我的onCreateViewHolder的样子:publicViewHolderonCreateViewHolder(Vi

我遵循了Google Developer的YouTube频道的this教程,以实施AdMob原生快速广告.

我收到以下错误:

required: packagename.adapter.vIEwHolderfound   : packagename.adapter.NativeExpressAdVIEwHolder

这是我的onCreateVIEwHolder的样子:

public VIEwHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) {    switch (vIEwType) {        case AD_VIEW_TYPE:            VIEw nativeExpressLayoutVIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.native_express_add_container, parent, false);            return new NativeExpressAdVIEwHolder(nativeExpressLayoutVIEw);         case MENU_ITEM_VIEW_TYPE:            default:            VIEw myLayoutVIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.List, parent, false);            return new VIEwHolder(myLayoutVIEw);    }}

这是我的2个不同的VIEwHolder类:

class VIEwHolder extends RecyclerVIEw.VIEwHolder implements VIEw.OnClickListener {          VIEwHolder(VIEw itemVIEw) {        super(itemVIEw);    }          }public class NativeExpressAdVIEwHolder extends RecyclerVIEw.VIEwHolder {    NativeExpressAdVIEwHolder(VIEw vIEw) {        super(vIEw);    }}

这是没有答案的类似问题:

> Error “Incompatible types” while adding NativeAds in recyclerView
> How to add NativeExpressAdView with Custom Model List Android?

编辑:

这是我要求的完整适配器:

public class MainActivityVIDeoAdapter extends Adapter<MainActivityVIDeoAdapter.VIEwHolder> {ArrayList<Bitmap> bitmapArrayList;Context context;LayoutInflater layoutInflater;VIEw myLayoutVIEw;ArrayList<PathModel> ThumbPathList;ArrayList<PathModel> VIDeoPathList = new ArrayList();static DBManager manager;long _ID;private static final int MENU_ITEM_VIEW_TYPE = 0;private static final int AD_VIEW_TYPE = 1;class VIEwHolder extends RecyclerVIEw.VIEwHolder implements VIEw.OnClickListener {    //VIDeo Title    TextVIEw vIDeoname;    //VIDeo Image    CircularImageVIEw vIDeoThumb;    //PopupMenu    Imagebutton vIEwholderOtions;    VIEwHolder(VIEw itemVIEw) {        super(itemVIEw);        vIEwholderOtions = (Imagebutton) myLayoutVIEw.findVIEwByID(R.ID.vIEwholderOptions);        vIDeoname = (TextVIEw) myLayoutVIEw.findVIEwByID(R.ID.filePath);        vIDeoThumb = (CircularImageVIEw) myLayoutVIEw.findVIEwByID(R.ID.VIDeothumbnail);        //VIEw onClick        itemVIEw.setonClickListener(this);        //Popup onClick        vIEwholderOtions.setonClickListener(this);    }    //Handling click events    @OverrIDe    public voID onClick(VIEw v) {        if (v == vIEwholderOtions) {            int position = (int) v.getTag();            showPopupMenu(vIEwholderOtions, position);        }    }}public class NativeExpressAdVIEwHolder extends RecyclerVIEw.VIEwHolder {    NativeExpressAdVIEwHolder(VIEw vIEw) {        super(vIEw);    }}public MainActivityVIDeoAdapter(Context context, ArrayList<PathModel> ThumbPathList, ArrayList<PathModel> VIDeoPathList) {    this.context = context;    this.ThumbPathList = ThumbPathList;    this.VIDeoPathList = VIDeoPathList;}public RecyclerVIEw.VIEwHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) {    switch (vIEwType) {        case AD_VIEW_TYPE:            VIEw nativeExpressLayoutVIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.native_express_add_container, parent, false);            return new NativeExpressAdVIEwHolder(nativeExpressLayoutVIEw);        case MENU_ITEM_VIEW_TYPE:        default:            VIEw myLayoutVIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.List, parent, false);            return new VIEwHolder(myLayoutVIEw);    }}public voID onBindVIEwHolder(final VIEwHolder myHolder, final int position) {    int vIEwType = getItemVIEwType(position);    switch (vIEwType) {        case AD_VIEW_TYPE:        case MENU_ITEM_VIEW_TYPE:        default:            final PathModel vIDeoPathModel = this.VIDeoPathList.get(position);            PathModel thumbathModel = this.ThumbPathList.get(position);            file file = new file(vIDeoPathModel.getPath());            String filename = file.getname();            myHolder.vIDeoname.setText(filename);            myHolder.vIDeoThumb.setimageURI(Uri.parse(thumbathModel.getPath()));            myHolder.vIEwholderOtions.setTag(position);            myHolder.itemVIEw.setonClickListener(new VIEw.OnClickListener() {                @OverrIDe                public voID onClick(VIEw v) {                                Intent intent= new Intent(context, VIDeoPlayerActivity.class);                              intent.putExtra("fromFA2", "fromFA2");                context.startActivity(intent);                }            });    }}

解决方法:

您好@ClassA我发现您已经在onBindVIEwHolder()中导入了本地类而不是RecyclerVIEw.VIEwHolder

请检查以下代码,这可能会对您有所帮助.

public class MainActivityVIDeoAdapter extends RecyclerVIEw.Adapter<RecyclerVIEw.VIEwHolder> {/*------------------your constructor goes here-----------------*/ @OverrIDe    public int getItemCount() {        return 0;    }    public voID onBindVIEwHolder(final RecyclerVIEw.VIEwHolder myHolder, final int position) {        int vIEwType = getItemVIEwType(position);        switch (vIEwType) {            case AD_VIEW_TYPE:            break;            case MENU_ITEM_VIEW_TYPE:            break;        }    }   public RecyclerVIEw.VIEwHolder onCreateVIEwHolder(VIEwGroup parent, int vIEwType) {        switch (vIEwType) {            case AD_VIEW_TYPE:                VIEw nativeExpressLayoutVIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.native_express_add_container, parent, false);                return new NativeExpressAdVIEwHolder(nativeExpressLayoutVIEw);            case MENU_ITEM_VIEW_TYPE:                VIEw myLayoutVIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.List, parent, false);                return new VIEwHolder(myLayoutVIEw);        }    }   class VIEwHolder extends RecyclerVIEw.VIEwHolder  {        VIEwHolder(VIEw itemVIEw) {            super(itemVIEw);        }    }    public class NativeExpressAdVIEwHolder extends RecyclerVIEw.VIEwHolder {        NativeExpressAdVIEwHolder(VIEw vIEw) {            super(vIEw);        }    }}

该代码不包含您的变量和逻辑,该代码可完美导入和使用方法.

如果这样可以解决您的问题,请使该答案得到批准.
编码愉快.

总结

以上是内存溢出为你收集整理的java-在onCreateViewHolder中使用不同的视图全部内容,希望文章能够帮你解决java-在onCreateViewHolder中使用不同的视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1081149.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存