MultiTypeAdapter(仿淘宝购物车)

作者 : 开心源码 本文共1441个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共294人阅读

RecyclerView与DataBinding封装

以购物车为例

1、创立一个类,并继承MultiTypeAdapter

当然也可以创立自己的ViewHolder

/** * 多类型viewType * 1、每种类型必需有对应的javabean,且必需实现RecyclerData接口,返回值可以不连续,但是必需不同; * 2、getLayoutRes(int viewType)必需返回对应的layout id; * 3、onBindViewHolder()方法中也必需将viewdatabinding这强转成对应的子类,数据也需要强转 * 4、假如没有重写onCreateViewHolder()方法,则创立ViewHolder; * 5、注释部分是使用自己设置的ViewHolder */public class ShoppingTrolleyAdapter extends MultiTypeAdapter {    /**     * 绑定数据到View中     * <p>     * 可以使用getItemViewType(position)获取对应的viewType     *     * @param position     * @param viewHolder     */    @Override    protected void onBindViewHolder(int position, ViewHolder viewHolder) {        switch (getItemViewType(position)) {            case 0:                ((ItemTopBinding) viewHolder.getBinding()).setGoodsTop((GoodsTopInfo) getDataList().get(position));                break;            case 1:                ((ItemCentreBinding) viewHolder.getBinding()).setGoodsCenter((GoodsCentreInfo) getDataList().get(position));                break;            case 2:                ((ItemBottomBinding) viewHolder.getBinding()).setGoodsBottom((GoodsBottomInfo) getDataList().get(position));                break;        }    }    /**     * 获取每种viewType对应的layout文件     *     * @param viewType 即RecyclerData中get_RV_ItemViewType()的返回值     * @return     */    @Override    protected int getLayoutRes(int viewType) {        switch (viewType) {            case 0:                return R.layout.item_top;            case 1:                return R.layout.item_centre;            case 2:                return R.layout.item_bottom;        }        return -1;    }}

2、实例化对象并设置点击事件

mShoppingTrolleyAdapter = new ShoppingTrolleyAdapter();

3、为RecyclerView设置Adapter

mRecyclerView.setAdapter(mShoppingTrolleyAdapter);

4、刷新或者写入数据

注意:必需在mRecyclerView.setAdapter(mFriendAdapter);才能写入数据

mShoppingTrolleyAdapter.refresh(data);
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » MultiTypeAdapter(仿淘宝购物车)

发表回复