andriod之自定义适配器与ListView的优化:
来源:互联网 发布:淘宝韩国直邮鉴别真假 编辑:程序博客网 时间:2024/06/01 08:46
自定义适配器:BaseAdapter
BaseAdapter
定义: 基本适配器的抽象类,且是ArrayAdapter、SimpleAdapter的父类
功能:用于实现复杂的数据显示
需要实现的方法
public int getCount() 返回数据源的大小
public long getItemId(int position) 返回指定位置的item控件id
public Object getItem(int position) 返回指定位置的数据
public View getView(int position,View convertView,ViewGroup parent) 返回指定位置的控件
ListView的优化:
>1,布局xml文件 listView的高度 固定 match_parent 减少getView的次数
>2,判断convertView是否为null 如果为空得话 使用布局加载器 去创建一个view
//如果不为空的话 直接拿来使用
>3.//将ViewHold保存到convertView中 convertView.setTag(viewHold);
//将ViewHold从convertView中直接拿出来使用viewHold = (ViewHold) convertView.getTag();
Java代码
import java.util.List;
import android.R.xml;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.qianfeng.day08_baseadaptertest.R;
import com.qianfeng.day08_baseadaptertest.modle.Data;
public class MyAdapter extends BaseAdapter{
private List<Data> list;
private Context context;
public MyAdapter(List<Data> list,Context context){
this.list = list;
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Log.i("==getView1==>", "==position==>"+position);
Log.i("==getView2==>", "==convertView==>"+convertView);
// View view = LayoutInflater.from(context).inflate(R.layout.item, null);
// ImageView iv = (ImageView) view.findViewById(R.id.iv);
// TextView titleViw = (TextView) view.findViewById(R.id.titleView);
// TextView descView = (TextView) view.findViewById(R.id.descView);
// TextView dateView = (TextView) view.findViewById(R.id.dateView);
//
// Data data = list.get(position);
// iv.setImageResource(data.getImgUrl());
// titleViw.setText(data.getTitle());
// descView.setText(data.getDesc());
// dateView.setText(data.getDate());
//
// return view;
// //2
// //判断convertView是否为null 如果为空得话 使用布局加载器 去创建一个view
// //如果不为空的话 直接拿来使用
// if(convertView == null){
// convertView = LayoutInflater.from(context).inflate(R.layout.item, null);
// }
// ImageView iv = (ImageView) convertView.findViewById(R.id.iv);
// TextView titleViw = (TextView) convertView.findViewById(R.id.titleView);
// TextView descView = (TextView) convertView.findViewById(R.id.descView);
// TextView dateView = (TextView) convertView.findViewById(R.id.dateView);
//
// Data data = list.get(position);
// iv.setImageResource(data.getImgUrl());
// titleViw.setText(data.getTitle());
// descView.setText(data.getDesc());
// dateView.setText(data.getDate());
//
// return convertView;
//第三种
ViewHold viewHold;
if(convertView == null){
convertView = LayoutInflater.from(context).inflate(R.layout.item, null);
viewHold = new ViewHold();
viewHold.iv = (ImageView) convertView.findViewById(R.id.iv);
viewHold.titleViw = (TextView) convertView.findViewById(R.id.titleView);
viewHold.descView = (TextView) convertView.findViewById(R.id.descView);
viewHold.dateView = (TextView) convertView.findViewById(R.id.dateView);
//将ViewHold保存到convertView中
convertView.setTag(viewHold);
}
//将ViewHold从convertView中直接拿出来使用
viewHold = (ViewHold) convertView.getTag();
Data data = list.get(position);
viewHold.iv.setImageResource(data.getImgUrl());
viewHold.titleViw.setText(data.getTitle());
viewHold.descView.setText(data.getDesc());
viewHold.dateView.setText(data.getDate());
return convertView;
}
class ViewHold{
ImageView iv;
TextView titleViw;
TextView descView;
TextView dateView;
}
}
- andriod之自定义适配器与ListView的优化:
- 自定义Listview适配器的优化
- ListView自定义适配器 优化
- 自定义Listview的适配器实现ViewHolder优化
- BaseAdapter自定义适配器及ListView的优化
- ListView 之 自定义适配器
- android关于ListView与自定义适配器配合使用的步骤与优化
- ListView之自定义适配器的使用
- ListView的优化和自定义适配器继承于BaseAdapter
- listview自定义适配器的优化和实际应用
- listview适配器的初级优化
- ListView的优化 +BaseAdapter适配器
- ListView的适配器及优化
- 适配器及ListView的优化
- ListView的自定义适配器Adapter
- Android listview与adapter用法(包括自定义需要的适配器)
- android listview系列之自定义的适配器(三)
- 自定义listview的使用与性能优化
- 欢迎使用CSDN-markdown编辑器
- Filter里面注入Service方法
- Remove Duplicates from Sorted List
- leetcode笔记:Remove Nth Node From End of List
- 网易互联网2015 在线笔试(2)
- andriod之自定义适配器与ListView的优化:
- studio删除无用的文件资源
- .net 的js选择方法
- 关于openssh连接时的尝试
- Object_C的setter、getter方法实现
- Session的生命周期
- html5之div,article,section区别与应用
- jquery未来元素绑定事件
- 如何去掉word自动生成目录的超级链接?