@Override public void onBindViewHolder(K holder,int positions){
  int viewType=holder.getItemViewType();
switch (viewType) {
case 0:
    convert(holder,mData.get(holder.getLayoutPosition() - getHeaderLayoutCount()));
  break;
case LOADING_VIEW:
addLoadMore(holder);
break;
case HEADER_VIEW:
break;
case EMPTY_VIEW:
break;
case FOOTER_VIEW:
break;
default :
convert(holder,mData.get(holder.getLayoutPosition() - getHeaderLayoutCount()));
break;
}
}

@ Override public void onBindViewHolder ( K holder , int positions ) { int viewType = holder . getItemViewType ( ) ; switch ( viewType ) { case 0 : convert ( holder , mData . get ( holder . getLayoutPosition ( ) - getHeaderLayoutCount ( ) ) ) ; break ; case LOADING_VIEW : addLoadMore ( holder ) ; break ; case HEADER_VIEW : break ; case EMPTY_VIEW : break ; case FOOTER_VIEW : break ; default : convert ( holder , mData . get ( holder . getLayoutPosition ( ) - getHeaderLayoutCount ( ) ) ) ; break ; } }
to bind different types of holder and solve different the bind events
