うん...既知の「問題」、これがListViewの動作だとしましょう。
修正方法:
ViewHolder について説明している @HXCaine の提案によるビデオの最初の 15 分間をご覧ください。
私が間違っていなければ、ビットマップがnullの場合、あなたの例はデフォルトの画像を設定する必要があります! この例では、これをビューに提供していないため、キャッシュされます。これはフレームワークで処理する必要がありますが、そうではありません:(。
コード例:
public class DebtAdapter extends BaseAdapter {
...
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
Bitmap bitmap;
if(convertView == null)
{
convertView = inflater.inflate(viewResourceId, null);
holder = new ViewHolder();
holder.photo = (ImageView) convertView.findViewById(R.id.photo);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
bitmap = item.getContact().getPhoto();
if(bitmap != null)
{
holder.photo.setImageBitmap(bitmap);
}
else
{
holder.photo.setImageBitmap(null);
}
return convertView;
}
}
お役に立てば幸いです。