ABaseApdater
2024-05-05 13:16:31
只上代码不多说话
public abstract class ABaseAdapter extends BaseAdapter{Context context;protected ABaseAdapter(Context context) {this.context = context;}protected ABaseAdapter() {}/*** 各个控件的缓存*/public class ViewHolder{public SparseArray<View> views = new SparseArray<View>();/*** 指定resId和类型即可获取到相应的view* @param convertView* @param resId* @param <T>* @return*/public <T extends View> 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();@Overridepublic 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():
@Override public int itemLayoutRes() {return R.layout.caipu_griditem;//返回布局的文件 }
4:重写父类额抽象方法getView(),绑定数据:
@Overridepublic 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
ABaseApdater相关推荐
最新文章
- 西湖大学三位资深博导自述:我与我的第一位博士生
- SectionList的使用
- C语言的成绩查询系统,c语言 成绩查询系统
- java 有没有with语句_Java中的try-with-resources语句
- 信息学奥赛一本通 1003:对齐输出 | OpenJudge NOI 1.1 03
- 24. 练习定义几种指针及数组
- python爬取论坛帖子_python爬虫爬取虎扑论坛的帖子名称和链接,为什么只能爬10页就报...
- 如何修改tomcat项目的图标
- python中计算DataFrame,Series的数据频率
- 【Java】编码规范
- Ubuntu 16.04 安装搜狗输入法
- CCF CSP 201803-1 跳一跳
- Android 插件化换肤方案
- JVM垃圾收集器详解之Parallel Scavenge
- 逾期的人真有这么多吗?
- codeforces 596E Wilbur and Strings(DFS)
- jQuery第三方插件
- anaconda 创建虚拟环境(自己版本)
- Linux关机时执行指定脚本
- Docker报错Error spawning command line “dbus-launch --autolaunch=xxx --binary-syntax --close-stderr”