博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABaseApdater
阅读量:5960 次
发布时间:2019-06-19

本文共 2677 字,大约阅读时间需要 8 分钟。

只上代码不多说话

public abstract class ABaseAdapter extends BaseAdapter{         Context context;              protected ABaseAdapter(Context context) {             this.context = context;         }              protected ABaseAdapter() {         }              /**         * 各个控件的缓存         */         public class ViewHolder{             public SparseArray
views = new SparseArray
(); /** * 指定resId和类型即可获取到相应的view * @param convertView * @param resId * @param
* @return */ public
T obtainView(View convertView, int resId){ View v = views.get(resId); if(null == v){ v = convertView.findViewById(resId); views.put(resId, v); } return (T)v; } } /** * 改方法需要子类实现,需要返回item布局的resource id * @return */ public abstract int itemLayoutRes(); @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if(null == convertView){ holder = new ViewHolder(); convertView = LayoutInflater.from(context).inflate(itemLayoutRes(), null); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } return getView(position, convertView, parent, holder); } /** * 使用该getView方法替换原来的getView方法,需要子类实现 * @param position * @param convertView * @param parent * @param holder * @return */ public abstract View getView(int position, View convertView, ViewGroup parent, ViewHolder holder); }

ABaseAdapter的用法:

1:编写适配类直接继承该ABaseAdapter。

2.在构造方法中调用父类的方法:

    即:

public MyAdapter(Context context){        super(context);    }

3:重写父类方法itemLayoutRes():

@Overridepublic int itemLayoutRes() {return R.layout.caipu_griditem;//返回布局的文件}

4:重写父类额抽象方法getView(),绑定数据:

@Override    public View getView(int position, View convertView, ViewGroup parent,            ViewHolder holder) {                ImageView imageView = holder.obtainView(convertView, R.id.cp_grid_img);        TextView textView = holder.obtainView(convertView, R.id.cp_grid_text);        imageView.setBackgroundResource(IMAGES[position]);        textView.setText(TITLES[position]);            return convertView;    }

 

结果简洁了许多。好东西,记得要分享!

 

转载于:https://www.cnblogs.com/wei1228565493/p/4684782.html

你可能感兴趣的文章
006android初级篇之jni数据类型映射
查看>>
Java 集合框架查阅技巧
查看>>
apache配置虚拟主机
查看>>
CollectionView水平和竖直瀑布流的实现
查看>>
前端知识复习一(css)
查看>>
spark集群启动步骤及web ui查看
查看>>
利用WCF改进文件流传输的三种方式
查看>>
Spring学习总结(2)——Spring的常用注解
查看>>
关于IT行业人员吃的都是青春饭?[透彻讲解]
查看>>
钱到用时方恨少(随记)
查看>>
mybatis主键返回的实现
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
数论之 莫比乌斯函数
查看>>
linux下查找某个文件位置的方法
查看>>
python之MySQL学习——数据操作
查看>>
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>