android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化
數(shù)據(jù)適配器——BaseAdapter
可以自定義View或者利用參數(shù)中的convertView
一、逗比式
沒(méi)有任何優(yōu)化處理,每次都創(chuàng)建新的View,設(shè)置控件,效率極其低下
``` @Override
public View getView(int position, View convertView, ViewGroup parent) {
//逗比式(沒(méi)有利用到ListView的緩存機(jī)制)//
View view = mInflater.inflate(R.layout.item,null);//裝載到item中的布局文件
ImageView imageView = (ImageView) view.findViewById(R.id.iv_image);
TextView title = (TextView) view.findViewById(R.id.iv_title);
TextView content = (TextView) view.findViewById(R.id.iv_content);
ItemBean bean = mList.get(position);
imageView.setImageResource(bean.ItemImage);
title.setText(bean.ItemTitle);
content.setText(bean.ItemContent);
return view;
//逗比式//
}
二、普通式
-----
利用了ListView的緩存特性,如果沒(méi)有緩存才創(chuàng)建新的View。算入門,但是findViewById依然會(huì)浪費(fèi)大量時(shí)間
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//普通式
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item, null);
}
ImageView imageView = (ImageView) convertView.findViewById(R.id.iv_image);
TextView title = (TextView) convertView.findViewById(R.id.iv_title);
TextView content = (TextView) convertView.findViewById(R.id.iv_content);
ItemBean bean = mList.get(position);
imageView.setImageResource(bean.ItemImage);
title.setText(bean.ItemTitle);
content.setText(bean.ItemContent);
return content;
//普通式
三、文藝式
-----
不僅利用了ListView的緩存,更通過(guò)ViewHolder類來(lái)實(shí)現(xiàn)顯示數(shù)據(jù)的視圖的緩存,避免多次通過(guò)findViewById尋找控件(這是最號(hào)的寫法)
1>創(chuàng)建內(nèi)部類ViewHolder
2>判斷convertView是否為空
3>通過(guò)setTag將ViewHolder與convertView綁定
//文藝式///
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = mInflater.inflate(R.layout.item, null);
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.iv_image);
viewHolder.title = (TextView) convertView.findViewById(R.id.iv_title);
viewHolder.content = (TextView) convertView.findViewById(R.id.iv_content);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)convertView.getTag();
}
ItemBean bean = mList.get(position);
viewHolder.imageView.setImageResource(bean.ItemImage);
viewHolder.title.setText(bean.ItemTitle);
viewHolder.content.setText(bean.ItemContent);
return convertView;
//文藝式///
}
class ViewHolder {
public ImageView imageView;
public TextView title;
public TextView content;
}
總結(jié)
以上是生活随笔為你收集整理的android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 单片机与微型计算机在结构上的区别和联系,
- 下一篇: linux alsa声卡命令,Linux