- public class ViewHolder {
- private final View itemView;
- public ViewHolder(View itemView) {
- if (null == itemView) {
- throw new IllegalArgumentException("itemView must not be null");
- } else {
- this.itemView = itemView;
- itemView.setTag(this);
- }
- }
- public View getItemView() {
- return itemView;
- }
- }
在ViewHolder中的itemView就是getView()办法中的convertView,这里刚好是条目标根View,类似RecyclerView中ViewHolder构造办法中itemView。因为不合的视图须要创建不合的ViewHolder,是以我们可以将创建ViewHolder的办法设置为抽象的办法裸露出去,别的赋值的时刻我们也须要根据具体的营业进行赋值,同样设置一个抽象办法。
- public abstract class SimpleAdapter<T,VH extends ViewHolder> extends MyAdapter<T> {
- public SimpleAdapter(Context context) {
- super(context);
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- VH holder = null;
- if (null == convertView) {
- holder = onCreateViewHolder(parent);
- convertView = holder.getItemView();
- } else {
- holder = (VH) convertView.getTag();
- }
- onBindViewHolder(holder, position);
推荐阅读
Relations 本文译自 What is a NoSQL Database? Learn By Writing>NoSQL 这个词在近些年正变得到处可见. 然则到底 "NoSQL" 指的是什么? 它是若何并且为什么这么竽暌剐用? 在本文, 我们将会>>>详细阅读
本文标题:Android自定义BaseAdapter最佳实践
地址:http://www.17bianji.com/lsqh/35304.html
1/2 1