我的图片得到洗牌或更改,当我在列表视图滚动 [英] my images get shuffled or changed when i scroll in list view

查看:115
本文介绍了我的图片得到洗牌或更改,当我在列表视图滚动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的图片得到洗牌或更改,当我在列表视图滚动.......
当我向下滚动,不断改变自己的自己的形象得到洗牌...............
公共类CustomListAdapter延伸BaseAdapter {

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;
}

}

推荐答案

问题是新的Andr​​oid开发非常普通。

The problem is very generic for new Android developers.

您ImageDownloaderTask应采取是否下载的图像仍应在屏幕上公布的照顾。

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

例如,ImageDownloaderTask完成一个图像下载任务后(例如,对于指数15),它应该确保15项仍然显示在屏幕上。由于是的ListView重用所有项目的意见,如果你直接设置位图的原始引用视图,您的ImageView将被洗牌。

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.

这篇关于我的图片得到洗牌或更改,当我在列表视图滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆