做个笔记Adapter的使用模板

在Android中Adapter使用十分广泛,特别是在list中。所以adapter是数据的“集散地”,所以对其进行内存优化是很有必要的。下面算是一个标准的使用模板:主要使用convertView和ViewHolder来进行缓存处理

(注:以前在使用adapter的时候从来都不定义ViewHolder,一直都是直接对convertView进行加载,今后用到adapter时,尽量采用以下模板实现)

具体的实现运行大家自己动手完成就OK(So easy的事吧)!

package com.weiwend.selected;import com.weiwend.wj.testactivity.R;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class adapter extends BaseAdapter {private Context context;private LayoutInflater inflater;public adapter(Context context) {super();this.context = context;inflater=LayoutInflater.from(context);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder vHolder=null;// 如果convertView对象为空,则创建新对象,不为空则复用if(convertView==null){//创建ViewHolder对象vHolder=new ViewHolder();convertView=inflater.inflate(R.layout.item_list, <span style="color:#ff0000;">null</span>);vHolder.img=(ImageView) convertView.findViewById(R.id.iv);vHolder.tv=(TextView) convertView.findViewById(R.id.tv);//将ViewHolder保存到Tag中(Tag中可以保存Object类型数据,所以任何东西都可以保存在Tag中)convertView.setTag(vHolder);}else{//当convertView不为空时,通过getTag()得到viewvHolder=(ViewHolder) convertView.getTag();}//给对象赋值,修改显示的值vHolder.img.setBackgroundResource(...);vHolder.tv.setText(...);return convertView;}//将显示的View包装成类static class ViewHolder{TextView tv;ImageView img;}}

更多相关文章

  1. android连网详解
  2. Android弹幕实现:基于B站弹幕开源系统(2)
  3. Android(安卓)分析内存的使用情况
  4. android ExpandableListView ExpandableListAdapter使用
  5. android数据存取的四种方式
  6. Android学习笔记(9)——ListView简介
  7. Android(安卓)应用程序之间数据共享 - ContentProvider
  8. Android从零开始搭建MVVM架构(4)——LiveData
  9. Android(安卓)kxml解析WBXML

随机推荐

  1. SQL分页查询存储过程代码分享
  2. MySQL5.7 group by新特性报错1055的解决
  3. CentOs7.x安装Mysql的详细教程
  4. Mac下忘记mysql密码重新设置密码的图文教
  5. mysql limit 分页的用法及注意要点
  6. mysql limit分页优化详细介绍
  7. MySQL数据库 1067错误号的解决方法
  8. MySQL数据库基础命令大全(收藏)
  9. centos7安装mysql并jdbc测试教程
  10. 理解MySQL——索引与优化总结