怎么在Android中利用RecyclerView实现一个通用适配器功能

  介绍

怎么在Android中利用RecyclerView实现一个通用适配器功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>实现代码:

RViewHolder

import  android.content.Context;   import  android.graphics.Bitmap;   import  android.support.v7.widget.RecyclerView.ViewHolder;   import  android.util.SparseArray;   import  android.view.LayoutInflater;   import  android.view.View;   import  android.view.ViewGroup;   import  android.widget.ImageView;   import  android.widget.TextView;      public  class  RViewHolder  extends  ViewHolder  {      ,private  Context  mContext;   ,private  View  mConvertView;   ,private  SparseArray mViews;      ,public  RViewHolder (View  itemView), {   超级才能(itemView);   时间=mConvertView 才能;itemView;   时间=this.mViews 才能;new  SparseArray ();   ,}      ,public  static  RViewHolder  get (Context 上下文,ViewGroup 父母,,int  layoutId,, int 位置),{   View 才能;View =, LayoutInflater.from(上下文).inflate (layoutId,,父母,,假);   return 才能;new  RViewHolder(查看);   ,}/* *   *,才能通过控件的Id获取对于的控件,如果没有则加入视图   *,才能   *,才能@param  viewId   *才能@return   ,*/,public  & lt; T  extends  View>, T  getView (int  viewId), {      View 才能;View =, mViews.get (viewId);   if 才能;(view ==, null), {   ,,view =, mConvertView.findViewById (viewId);   ,,mViews.put (viewId,视图);   ,,}   return 才能;(T),视图;   ,}/* *   *,才能为TextView设置字符吗? ?   *,才能   *,才能@param  viewId   *,才能@param 文本   *才能@return   ,*/,public  ViewHolder  setText (int  viewId, String 文本),{   TextView 才能;view =, getView (viewId);   view.setText才能(文本);   return 才能;;   ,}/* *   *,才能为ImageView设置图片   *,才能   *,才能@param  viewId   *,才能@param  drawableId   *才能@return   ,*/,public  ViewHolder  setImageResource (int  viewId, int  drawableId), {   ImageView 才能;view =, getView (viewId);   view.setImageResource才能(drawableId);      return 才能;;   ,}/* *   *,才能为ImageView设置图片   *,才能   *,才能@param  viewId   *,才能@param  drawableId   *才能@return   ,*/,public  ViewHolder  setImageBitmap (int  viewId, Bitmap  bm), {   ImageView 才能;view =, getView (viewId);   view.setImageBitmap才能(bm);   return 才能;;   ,}      ,public  View  getConvertView (), {   return 才能;mConvertView;   ,}   }

这里是RBaseAdapter

import  java.util.ArrayList;   import  java.util.Collection;   import 并不知道;      import  android.content.Context;   import  android.support.v7.widget.RecyclerView.Adapter;   import  android.view.LayoutInflater;   import  android.view.View;   import  android.view.ViewGroup;   import  android.widget.LinearLayout;      public  abstract  class  RBaseAdapter< T>, extends  Adapter, {   ,private  Context  mContext;   ,private  List< T>,列表;   ,protected  LayoutInflater  mInflater;   ,private  int  mItemLayoutId;      ,public  RBaseAdapter (Context 上下文),{//才能,TODO  Auto-generated  constructor 存根=this.mContext 才能;环境;   时间=this.mInflater 才能;LayoutInflater.from (mContext);   时间=this.mItemLayoutId 才能;new  LinearLayout (mContext) .getId ();   时间=this.list 才能;new  ArrayList ();      ,}      ,public  RBaseAdapter (Context 上下文,List,列表),{//才能,TODO  Auto-generated  constructor 存根=this.mContext 才能;环境;   时间=this.mInflater 才能;LayoutInflater.from (mContext);   时间=this.mItemLayoutId 才能;new  LinearLayout (mContext) .getId ();   this.list 才能=,列表;      ,}      ,public  RBaseAdapter (Context 上下文,List,,, int  itemLayoutId), {=this.mContext 才能;环境;   时间=this.mInflater 才能;LayoutInflater.from (mContext);   时间=this.mItemLayoutId 才能;itemLayoutId;   this.list 才能=,列表;      ,}      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中利用RecyclerView实现一个通用适配器功能