手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Android中listView的怎么优化

时间:2024-11-20 15:30:41

1、重用了convertView,很大程度上的减少了内存的消耗。通过判断convertView是否为null,是的话就需要产生一个视图出来,然后给这个视图数据,最后将这个视图返回给底层,呈献给用户。 特点:如果当前的convertView为null,则通过LayoutInflat产生一个view。

2、ViewCodepublicViewgetView(intposition,V坡纠课柩iewconvertView,View镟搞赃呓Groupparent){if(convertView==null){convertView=LayoutInflater.from(context).inflate(R.layout.section_list_item1,null);}TextViewtv_name=(TextView)convertView.findViewById(R.id.contact_contactinfoitem_tv_name);TextViewtv_phone=(TextView)convertView.findViewById(R.id.contact_contactinfoitem_tv_phoneNum);ContactInfo1confo=contacts.get(position);if(confo!=null){//toseteveryitem'stexttv_name.setText(confo.getContactName());tv_phone.setText(confo.getContact_Phone());}returnconvertView;}

3、上面的写法会有一个缺点,就是每次在getVIew的时候,都需要重新的findViewById,重新找到控件,然后进行控件的赋值以及事件相应设置。这样其实在做重复的事情,因为的geiview中,其实包含有这些控件,而且这些控件的id还都是一样的,也就是其实只要在view中findViewById一次,后面无需要每次都要findViewById了。

© 手抄报圈