博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BaseAdapter封装
阅读量:7075 次
发布时间:2019-06-28

本文共 2160 字,大约阅读时间需要 7 分钟。

hot3.png

package -.adapter;--import android.content.Context;import android.databinding.DataBindingUtil;import android.databinding.ViewDataBinding;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.List;/** * --------------------------- * 

的基类 */public abstract class BaseBindingAdapter

extends RecyclerView.Adapter
{ protected Context context; protected LayoutInflater mInflater; protected List
mDatas; public BaseBindingAdapter(Context context, List
datas) { this.context = context; this.mDatas = datas; mInflater = LayoutInflater.from(context); } @Override public BindingViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { H binding = DataBindingUtil.inflate(mInflater, getViewHolderLayoutId(), parent, false); return new BindingViewHolder(binding); } @Override public void onBindViewHolder(BaseBindingAdapter.BindingViewHolder holder, int position) { T itemInfo = mDatas.get(position); H binding = (H) holder.getBinding(); onBindMyViewHolder(holder, position, itemInfo, binding); holder.getBinding().executePendingBindings(); //解决闪烁问题 } @Override public int getItemCount() { return mDatas == null ? 0 : mDatas.size(); } /** * 获取 viewItem的 layoutId * * @return */ protected abstract int getViewHolderLayoutId(); /** * @param holder * @param position * @param itemInfo * @param binding */ protected abstract void onBindMyViewHolder(BindingViewHolder holder, int position, T itemInfo, H binding); public class BindingViewHolder extends RecyclerView.ViewHolder { private ViewDataBinding binding; public BindingViewHolder(ViewDataBinding binding) { super(binding.getRoot()); this.binding = binding; } public ViewDataBinding getBinding() { return binding; } }}

转载于:https://my.oschina.net/u/1268043/blog/1616002

你可能感兴趣的文章
我有一个idea,但是没有钱,又没技术怎么办?
查看>>
网页文字图片异步加载方式
查看>>
Wordpress如何更换网站主机?
查看>>
Java连接Oracle数据库简单实例
查看>>
Exchange2010 dag 的部署
查看>>
Linux/UNIX的scp命令用法详解
查看>>
Eclipse(MyEclipse)插件Jigloo的下载与安装
查看>>
软件设计的思想与哲学
查看>>
非常实用的linux系统命令
查看>>
NFS在Centos 6.3下的安装
查看>>
git pull 和本地文件冲突解决
查看>>
iOS音频AAC视频H264编码 推流最佳方案
查看>>
python基础教程(第2版)第五章读后总结;
查看>>
关于在eclipse中使用tomcat的笔记
查看>>
Android自定义控件实现简单的轮播图控件
查看>>
centos 6.4下的samba服务器的构建
查看>>
持续交付:价值主张
查看>>
二进制、八进制、十进制、十六进制之间转换
查看>>
sqlmap 本地安装
查看>>
[计算机术语]缺省
查看>>