android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化
數據適配器——BaseAdapter
可以自定義View或者利用參數中的convertView
一、逗比式
沒有任何優化處理,每次都創建新的View,設置控件,效率極其低下
``` @Override
public View getView(int position, View convertView, ViewGroup parent) {
//逗比式(沒有利用到ListView的緩存機制)//
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的緩存特性,如果沒有緩存才創建新的View。算入門,但是findViewById依然會浪費大量時間
@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的緩存,更通過ViewHolder類來實現顯示數據的視圖的緩存,避免多次通過findViewById尋找控件(這是最號的寫法)
1>創建內部類ViewHolder
2>判斷convertView是否為空
3>通過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;
}
總結
以上是生活随笔為你收集整理的android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机与微型计算机在结构上的区别和联系,
- 下一篇: linux alsa声卡命令,Linux