@XQF
2017-02-10T22:40:58.000000Z
字数 802
阅读 1107
《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中绑定视图,。,。看情况