Android中listview的优化

来源:互联网 发布:一点智慧软件多少钱 编辑:程序博客网 时间:2024/06/05 08:25

在安卓中listview的优化主要分两个方面,第一级别的convertview和第二级别的viewHold;

convertview是adapter(自定义适配器)中的getview方法中,

例:

@Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHold viewHold = null;        if(convertView == null){ //添加判断是为了只加载刚开始的几个item不至于每次进入listview中上下滑动的时候都加载。假如listview在屏幕中一页可显示的item为n个那么只需要加载n+1个item就好了。            convertView = inflater.inflate(R.layout.item, null);            viewHold = new ViewHold();            viewHold.logo = (ImageView) convertView.findViewById(R.id.logo);            viewHold.title = (TextView) convertView.findViewById(R.id.title);            viewHold.version = (TextView) convertView.findViewById(R.id.version);            viewHold.size = (TextView) convertView.findViewById(R.id.size);            convertView.setTag(viewHold);        } else {            viewHold = (ViewHold) convertView.getTag();        }        //ImageView logo = (ImageView) convertView.findViewById(R.id.logo);        //TextView title = (TextView) convertView.findViewById(R.id.title);        //TextView version = (TextView) convertView.findViewById(R.id.version);        //TextView size = (TextView) convertView.findViewById(R.id.size);        Map map = list.get(position);        viewHold.logo.setImageResource((Integer) map.get("logo"));        viewHold.title.setText((String) map.get("title"));        viewHold.version.setText((String) map.get("version"));        viewHold.size.setText((String) map.get("size"));        return convertView;    }
对于viewhold是一个自定义的类,类里面的内容是需要进行adapter与每个item中需要对应的变量。

例:

public class ViewHold{  //与上面的对应。        ImageView logo;        TextView title;        TextView version;        TextView size;    }














0 0