RecyclerView的万能适配器

public abstract class CommandRecyclerAdapter<V> extends RecyclerView.Adapter<RecyclerViewHolder>{

    private Context mContext;
    private List<V> dataList;

    private LayoutInflater layoutInflater;

    public CommandRecyclerAdapter(Context mContext, List<V> dataList) {
        this.mContext = mContext;
        this.dataList = (dataList!=null? dataList:new ArrayList<V>());
        layoutInflater = LayoutInflater.from(mContext);
    }


    @Override
    public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View inflate = layoutInflater.inflate(getLayoutInflaterId(viewType), parent, false);
        RecyclerViewHolder holder = new RecyclerViewHolder(inflate);
        return holder;
    }


    @Override
    public void onBindViewHolder(RecyclerViewHolder holder, int position) {
        covert(holder,position,dataList.get(position));
    }

    @Override
    public int getItemCount() {
        return dataList.size();
    }

    public abstract void covert(RecyclerViewHolder holder,int position,V items);
    public  abstract  int getLayoutInflaterId(int viewType);
}



public class RecyclerViewHolder extends RecyclerView.ViewHolder {
    private SparseArray<View> views;

    private View itemView;
    public RecyclerViewHolder(View itemView) {
        super(itemView);
        views = new SparseArray<>();
        this.itemView = itemView;
    }

    public <T extends View> T getView(int layoutId){
        View view = views.get(layoutId);
        if (view == null) {
            view = itemView.findViewById(layoutId);
            views.put(layoutId,view);
        }

        return ((T) view);
    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值