BaseAdapter工具类
来源:互联网 发布:edius软件 编辑:程序博客网 时间:2024/06/16 21:21
<span style="font-family:Comic Sans MS;font-size:18px;">package com.example.listview;import java.util.List;import com.example.json.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 MyAdapter extends BaseAdapter {private List<Item> list;private Context context;public MyAdapter(List<Item> list, Context context) {super();this.list = list;this.context = context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();// 返回数据个数}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn list.get(position);// 返回指定索引对应的数据项}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;// 获取指定行对应的id}/** * 获取每一个item的显示内容 */@Overridepublic View getView(int position, View convertView, ViewGroup parent) {/** * 第一种方式:完全没有利用ListView的缓存机制,每次加载都创建一个新的view对象,对资源是极大的浪费 */// View view = LayoutInflater.from(context).inflate(R.layout.item,// null);//布局加载器,返回一个view对象// ImageView image=(ImageView) view.findViewById(R.id.image);// TextView title=(TextView) view.findViewById(R.id.title);// TextView content=(TextView) view.findViewById(R.id.content);// //讲数据加载到item上// Item item=list.get(position);// image.setImageResource(item.getImage());// title.setText(item.getTitle());// content.setText(item.getContent());// return view;/** * 第二种方式,充分利用了ListView的缓存机制,但findViewById依旧浪费时间 */// 如果缓存中没有convertView,则重新创建换一个view// if (convertView == null) {// convertView = LayoutInflater.from(context).inflate(R.layout.item,// null);// }// //如果缓存中有view,则直接取出来设置并使用,不用创建一个新的view// ImageView image = (ImageView) convertView.findViewById(R.id.image);// TextView title = (TextView) convertView.findViewById(R.id.title);// TextView content = (TextView) convertView.findViewById(R.id.content);// // 讲数据加载到item上// Item item = list.get(position);// image.setImageResource(item.getImage());// title.setText(item.getTitle());// content.setText(item.getContent());// return convertView;/** * 第三种文艺式:不仅充分利用了ListView的缓存,还避免了重复找控件 * 步骤 1:创建一个ViewHolder,声明所需要的控件 * 2 声明ViewHolder并实例化,判断缓存中是否存在view,不存在则创建,并把控件存放到缓存中 * 3 通过setTag将viewHolder和convertView绑定 */ViewHolder viewHolder;if (convertView == null) {viewHolder =new ViewHolder();//由于我们只需要将XML转化为View,并不涉及到具体的布局,所以第二个参数通常设置为nullconvertView = LayoutInflater.from(context).inflate(R.layout.item,null);viewHolder.image=(ImageView) convertView.findViewById(R.id.image);viewHolder.title=(TextView) convertView.findViewById(R.id.title);viewHolder.content=(TextView) convertView.findViewById(R.id.content);convertView.setTag(viewHolder);}else{viewHolder=(ViewHolder) convertView.getTag();//取出数据}//加载数据 Item item = list.get(position); viewHolder.image.setImageResource(item.getImage()); viewHolder.title.setText(item.getTitle()); viewHolder.content.setText(item.getContent()); return convertView;}//用于缓存控件class ViewHolder {public ImageView image;public TextView title;public TextView content;}}</span>
0 0
- BaseAdapter工具类
- baseAdapter工具类
- BaseAdapter的工具类
- Android中BaseAdapter的viewHolder工具类
- 开发工具,适配器BaseAdapter
- Android自定义适配器父类继承BaseAdapter,自定义生成对话框工具类
- android 重写BaseAdapter类
- BaseAdapter
- baseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- BaseAdapter
- baseAdapter
- BaseAdapter
- BaseAdapter
- BASEAdapter
- BaseAdapter
- 我的Android进阶之旅------>Android中编解码学习笔记
- traceroute程序
- Java之内存分析和String对象
- Base64编码1
- C++套接字编程(聊天程序)
- BaseAdapter工具类
- Linux apt-get
- 找出升序数组中元素之和最接近于给定数值的两个数
- const_iterator 《C++ primer》(第5版)的笔误
- String.trim()方法
- JavaScript高级程序设计之变量、作用域和内存问题之垃圾收集第4.3讲敏敏笔记
- 第八章 包装类
- C++ traits编程方法
- Action访问Servlet API的对象