@XQF
2017-02-10T14:40:58.000000Z
字数 802
阅读 1250
《Android探险》
MyHolder<T> extends RecyclerView.ViewHolder{}
这里的泛型T就是我们定义的item类。可以在里面
setData(T t)BindData(T t)
还要说明一点的就是关于ViewHolder的构造方法。以前我基本都是这样写的
class MyHolder extends RecyclerView.ViewHolder{public MyHolder(View itemView){}}
实际上这样写也不是很对,这种方式要调用一下父类构造器应该更稳
class MyHolder extends RecyclerView.ViewHolder{public MyHolder(View itemView){super(itemView);}}
为什么说要调用一下父类构造器更稳
看看下面这种写法
public class MyHolder extends RecyclerView.ViewHolder{private Button mBtn;public MyHolder(LayoutInfalter inflater,ViewGroup container){super(infalter.inflate(layout资源,container,false);mBtn=(Button)itemView.findViewById(资源Id);}}
没错,这个itemView已经在父类中有这个成员变量了,super()传入的只要是个view就行。实际上这两种方式也可以进行互换,只不过是加载布局不同的时机。
而恰恰这个时机也可以是我们应用的一个时机。我们是选择在Adapter中绑定item视图还是在ViewHolder中绑定视图,。,。看情况
