0

アクティビティにリスト ビューを実装しています。最初の行のみに画像を表示しています。そのアクティビティから別のアクティビティに移動して [戻る] を押すと、この画像がすべての行に表示されますか? 何をすべきか?どんな助けでも感謝されます。コードはこれです。リモートサーバーから画像を取得しています。if (convertView == null) {

        LayoutInflater inflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.shop_list_items_row, null);
        viewHandler = new ListingViewHandler(convertView);
        convertView.setTag(viewHandler);
        convertView
                .setBackgroundResource((position % 2) == 0 ? R.color.listViewAlternateColor1
                        : R.color.listViewAlternateColor2);
    }

    viewHandler = (ListingViewHandler) convertView.getTag();

    ImageView image = viewHandler.getImage();
     Bitmap a = downloadFile(imageUrl);

    if (position==0) {
        image.setImageBitmap(a);
    }
4

1 に答える 1

2

これはの正常な動作ですListView Adapter。これは、が行としてListView再利用Viewされるためです。converViewしたがって、View画像を保持しているfor位置0が再利用されるため、他の位置の画像を削除する必要があります。そのためには、else条件を設定して、次のように他の位置の画像を削除します。

if (position==0) {
   image.setImageBitmap(a);
}
else
   image.setImageDrawable(null);  //to remove the image for all other rows
于 2012-05-22T12:27:27.200 に答える