BaseAdapter
来源:互联网 发布:java实现日志服务 编辑:程序博客网 时间:2024/05/23 01:32
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;/** * Created by Administrator on 2015/11/6. */public class MyAdapter extends BaseAdapter { Context context; List<Help> data; public MyAdapter(Context context,List<Help> data) { this.context = context; this.data=data; } /*返回BAseAdapter处理数据源的总数*/ @Override public int getCount() { return data.size(); } /*返回数据源中某个位置的对象*/ @Override public Object getItem(int position) { return data.get(position); } /*返回数据源中某个位置的对象的ID*/ @Override public long getItemId(int position) { return position; } /*决定布局的显示效果*/ @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; /* convertView每次都要进行判空,因为有可能ListView滑动过快,导致布局来不及释放重用, 如果convertView为空,就按照正常流程,为convertView赋值确保convertView不为空*/ if(convertView==null){ convertView= LayoutInflater.from(context).inflate(R.layout.item,null); viewHolder.text1=(TextView)convertView.findViewById(R.id.text1); viewHolder.text2=(TextView)convertView.findViewById(R.id.text2); viewHolder.text3=(TextView)convertView.findViewById(R.id.text3); }else{ /*Tag不像ID是用标示view的。Tag从本质上来讲是就是相关联的view的额外的信息。 它们经常用来存储一些view的数据,这样做非常方便而不用存入另外的单独结构。他 是给View对象的一个标签,标签可以是任何内容,我们这里把他设置成了一个对象, 因为我们是把Item.xml的元素抽象出来成为一个类ViewHolder,用了setTag,这 个标签就是ViewHolder实例化后对象的一个属性。我们之后对于ViewHolder实例化 的对象holder的操作,都会因为java的引用机制而一直存活并改变convertView的 内容,而不是每次都是去new一个。*/ convertView.setTag(viewHolder); } /*此处对布局文件进行赋值*/ Help help=data.get(position); viewHolder.text1.setText(help.getName()); return convertView; } /*ViewHolder通常出现在适配器里,为的是ListView滚动的时候快速设置值,而不必每次都重新创建 很多对象,从而提升性能。ViewHolder只是将需要缓存的那些view封装好,convertView的setTag才 是将这些缓存起来供下次调用。当你的ListView里布局多样化的时候 ViewHolder的作用就有比较明显 的体现了。 当然了,单一模式的布局一样有性能优化的作用 只是不直观。 假如你2种模式的布局 当发生回收的时候 你会用setTag分别记录是哪两种 这两种模式会被封装到ViewHolder中进行保 存方便你下次使用。 VH就是个静态类 与缓存无关的*/ class ViewHolder{ TextView text1; TextView text2; TextView text3; }}
0 0
- BaseAdapter
- baseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- baseAdapter
- BaseAdapter
- BaseAdapter
- BASEAdapter
- BaseAdapter
- BaseAdapter......
- BaseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- 线程终止方式
- 数据的集合运算----几个单表查询的关系(高性能查询)
- mysql---写存储过程需要的知识点
- struts2中<s:if>标签判断session问题
- JavaScript学习(一):词法结构
- BaseAdapter
- Netty sample
- 经济学故事-卖猴子
- Layout_weight属性解析
- 解决eclipse中出现Resource is out of sync with the file system问题
- C#中读取枚举值的描述属性
- pets vs cattle
- xen虚拟机时间同步
- HTTP_REFERER的用法及伪造