BaseAdapter

packagecom.example.lenovo.myapplication.baseadapter;

importandroid.content.Context;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.BaseAdapter;

importjava.util.List;

/**

* Created by Lenovo on 2017/11/10.

*/

public abstract classCommonAdapterextendsBaseAdapter {

publicContextcontext;

publicListlistData;

private intlayoutId;

publicCommonAdapter(Context context, List listData,intlayoutId) {

super();

this.context= context;

this.listData= listData;

this.layoutId= layoutId;

}

@Override

public intgetCount() {

return this.listData==null?0:this.listData.size();

}

@Override

publicObject getItem(intposition) {

return this.listData.get(position);

}

@Override

public longgetItemId(intposition) {

returnposition;

}

@Override

publicView getView(intposition, View convertView, ViewGroup parent) {

CommonViewHolder holder = CommonViewHolder.getViewHolder(this.context, convertView, parent,this.layoutId);

this.fillData(holder, position);

returnholder.getMConvertView();

}

protected abstract voidfillData(CommonViewHolder holder,intposition);

}

====================================================================================================================================================

packagecom.example.lenovo.myapplication.baseadapter;

importandroid.content.Context;

importandroid.util.SparseArray;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

/**

* Created by Lenovo on 2017/11/10.

*/

public classCommonViewHolder {

privateSparseArraymViews;

privateViewmConvertView;

publicCommonViewHolder(Context context, ViewGroup parent,intlayoutId) {

mViews=newSparseArray<>();

mConvertView= LayoutInflater.from(context).inflate(layoutId, parent,false);

mConvertView.setTag(this);

}

public staticCommonViewHolder getViewHolder(Context context, View convertView, ViewGroup parent,intlayoutId) {

if(convertView ==null)

return newCommonViewHolder(context, parent, layoutId);

return(CommonViewHolder) convertView.getTag();

}

@SuppressWarnings("unchecked")

publicTgetView(intviewId) {

View item =mViews.get(viewId);

if(item ==null) {

item =mConvertView.findViewById(viewId);

mViews.put(viewId, item);

}

return(T) item;

}

publicView getMConvertView() {

returnmConvertView;

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • BaseAdapter是最基础的Adapter类,也是最实用最常用的一个类,但是相比于ArrayAdapter之类...
    mengming阅读 65,546评论 12 82
  • 今天学习了BaseAdapter的三种方法: ListView的缓存机制:LIstView加载时不会把所有的数据都...
    shakesbears阅读 5,017评论 0 2
  • ListView或者GridView中我们常常用到了BaseAdapter,下面一个例子来说明BaseAdapte...
    eirunye阅读 3,114评论 0 2
  • 直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法,其中最重要的当属getView,因...
    程序左边阅读 1,950评论 0 2
  • 最近發展一件超級好玩的事:每當我想和別人說件事,以這句話做開場白之後,基本上,都弄吊足對方的胃口。然後對方眼神里流...
    苏岚阅读 1,592评论 0 0