my images get shuffled or changed when i scroll in list view

我的梦境 提交于 2019-12-11 19:32:37

问题


my images get shuffled or changed when i scroll in list view....... Images get shuffled when i scroll down and keep on changing own its own............... public class CustomListAdapter extends BaseAdapter {

private ArrayList<NewsItem> listData;

private LayoutInflater layoutInflater;

public CustomListAdapter(Context context, ArrayList<NewsItem> listData) {

    this.listData = listData;
    layoutInflater = LayoutInflater.from(context);

}

@Override
public int getCount() {
    return listData.size();
}

@Override
public Object getItem(int position) {
    return listData.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.activity_list_search, null);
        holder = new ViewHolder();
        holder.headlineView = (TextView) convertView.findViewById(R.id.title);
        holder.reporterNameView = (TextView) convertView.findViewById(R.id.reporter);
        holder.reportedDateView = (TextView) convertView.findViewById(R.id.date);
        holder.imageView = (ImageView) convertView.findViewById(R.id.thumbImage);
        convertView.setTag(holder);

    } else {
        holder = (ViewHolder) convertView.getTag();

    }

    NewsItem newsItem = (NewsItem) listData.get(position);

    holder.headlineView.setText(newsItem.getHeadline());
    holder.reporterNameView.setText("Model: " + newsItem.getReporterName());
    holder.reportedDateView.setText(newsItem.getDate());

    if (holder.imageView != null) {
        new ImageDownloaderTask(holder.imageView).execute(newsItem.getUrl());
    }

    return convertView;

}

static class ViewHolder {
    TextView headlineView;
    TextView reporterNameView;
    TextView reportedDateView;
    ImageView imageView;
}

}


回答1:


The problem is very generic for new Android developers.

Your ImageDownloaderTask should take care of whether the downloaded image should still be posted on screen.

For example, after ImageDownloaderTask finishes one image downloading task (e.g. for index 15), it should make sure the 15th item is still displaying on screen. Since ListView is reusing all the item views, if you directly set the bit map to the original referenced view, your imageview will be shuffled.



来源:https://stackoverflow.com/questions/20310810/my-images-get-shuffled-or-changed-when-i-scroll-in-list-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!