adaptador universal ListView

importación android.content.Context ;
importación android.graphics.Bitmap ;
importación android.util.SparseArray ;
importación android.view.LayoutInflater ;
importación android.view.View ;
importación android.view.ViewGroup ;
importación android.widget.BaseAdapter ;
importación android.widget.ImageView ;
importación android.widget.TextView ; importación java.util. lista ;
clase abstracta pública LvCommonAdapter < T > extiende BaseAdapter {
    

protegida LayoutInflater mInflater ;
    protegida Contexto mContext ;
    protegidas Lista < T > mDatas ;
    final protegido int mItemLayoutId ;
    pública LvCommonAdapter (contexto Contexto , int itemLayoutId , Lista < T > mDatas) {
         esto . mContext = contexto ;
        esta . mInflater = LayoutInflater. de ( mContext ) ;
        esta . mDatas = mDatas ;
        esta . mItemLayoutId = itemLayoutId ;
    }
     @Override
 public int getCount () 
    { retorno mDatas .size () ;
} @ Override
 pública T getItem ( int posición) 
    { retorno mDatas .get (posición) ;
} @ Override
 pública a largo GetItemID ( int posición) { retorno de posición ; }    
            

        
            

        

    @ Override
 pública Ver getView ( int posición , Ver convertView , ViewGroup padre) {
         definitiva ViewHolder viewHolder = getViewHolder (posición , convertView , los padres) ;
convert (viewHolder , getItem (posición)) ;
        volver viewHolder.getConvertView () ;
} Public abstract void convertido (ayudante ViewHolder , T artículo) ;
    privada ViewHolder getViewHolder ( int            
    

    
posición , Ver convertView , ViewGroup padre) {
         volver ViewHolder. obtener ( mContext , convertView , padres , mItemLayoutId ,
                 posición) ;
    } / **
      *内部类 ViewHolder     * /
 public static class ViewHolder {
         privados finales SparseArray <Ver> mViews ;
        private int mPosition ;
        privada Ver mConvertView ;
        privada ViewHolder


    
    (Contexto Contexto , ViewGroup matriz , int layoutId , int posición) {
             esto . mPosition = posición ;
            esta . mViews = nueva SparseArray <Ver> () ;
mConvertView = LayoutInflater. de (contexto) .inflate (layoutId , padres , falsa ) ;
mConvertView .setTag ( este ) ;
} / **
          *拿到一个ViewHolder对象
          * /
 public static ViewHolder get                                

                (El contexto Contexto , Ver convertView , el padre ViewGroup , int layoutId , int posición) {
             SI (convertView == nula ) {
                 return new nueva ViewHolder (contexto , los padres , layoutId , posición) ;
             }
             retorno (ViewHolder) convertView.getTag () ;
         } pública Vista getConvertView () {
             volver mConvertView ;
 } / **
          * Obtiene el identificador del control por el control, si no, entonces añadido vistas


                

                 * /
 Público < T se extiende Ver> T getView ( int viewId) {
            Ver ver = mViews .get (viewId) ;
            si (vista == nula ) {
                view = mConvertView .findViewById (viewId) ;
mViews .Put (viewId , vista) ;
}
             Devolver ( T vista) ;
} / **
          *为TextView设置字符串
          * /
 público ViewHolder setText                                            

                ( Int viewId , texto String) 
        { 
            el TextView Ver las getView = (viewId) ;
             view.setText (texto) ;
             devolver el este;
         } / **
          * Establecer el recurso es la imagen ImageView
          * /
 público ViewHolder setImageResource ( int viewId , int drawableId) { 
            ImageView = la getView Ver (viewId) ;
 view.setImageResource (drawableId) ;
             devolver el este;
 } / **
          * establecer el ImageView mapa de bits de imagen          * /
 público

                            
        

        
        ViewHolder setImageBitmap ( int viewId , Bitmap BM) 
        { 
            ImageView Ver las getView = (viewId) ;
             view.setImageBitmap (BM) ;
             devolver el este;
         } ** /
          * URL de la imagen Conjunto THHP del ImageView
          * /
 público ViewHolder setImageByUrl ( int viewId , String URL ) {
             // la carga ImageLoader imagen
             (. 3, Type.LIFO) .loadImage (URL, (el ImageView) // ImageLoader.getInstance la getView (viewId));
             // imagen carga Glide dispuesto de compilación 'com.github.bumptech.glide: Glide : 3.8.0 '


                
            // Glide.with (contexto) .load (url) .into (vista);
devolver este;
}
         Public int getPosition () {
             retorno mPosition ;
} 
    } 
}                            

uso:

Tipo de datos del estudiante, tenga que pasar en función del tipo de necesidad.

LvCommonAdapter mAdapter = new LvCommonAdapter<Student>(CardListActivity.this, R.layout.item_card, datas) {
    @Override
    public void convert(ViewHolder helper, Student item) {
        helper.setText(R.id.name, item.getName());
        helper.setText(R.id.address, item.getAddress());
    }

};
mylistView.setAdapter(mAdapter);

发布了51 篇原创文章 · 获赞 4 · 访问量 5万+

Supongo que te gusta

Origin blog.csdn.net/qq_34075348/article/details/79892488
Recomendado
Clasificación