それは非常に奇妙ですが、本当です。リストのパフォーマンスを向上させるために ViewHolder パターンを使用しています。getView() メソッドにはビットマップがありますが、以下のコードはリストビュー アイテムのイメージビューでビットマップをレンダリングできません。
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.item_view_contact_item, null);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.
}
上記は、リスト行のイメージビューでビットマップをレンダリングできません。しかし、以下のコードは
//if(convertView == null) {
convertView = layoutInflater.inflate(R.layout.item_view_contact_item, null);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
//} else {
// viewHolder = (ViewHolder) convertView.
//}
この場合、すべて(検索、イメージビューへのビットマップの割り当て)は正常に機能します。しかし、レイアウトのインフレーションが毎回発生するため、これはリストのパフォーマンスの低下につながります。
親切に助けてください。
注: 別の AsyncTask でビットマップをダウンロードし、最初にアダプターに渡される arraylist に割り当てます。