BaseAdapter回收问题-Android

BaseAdapter回收问题-Android,android,baseadapter,Android,Baseadapter,我有下面的BaseAdapter,问题是我看到一个ImageView循环问题,图像显示在另一个ImageView中。问题只发生在快速滚动时,我在这里做错了什么 让我带您了解我要做的事情的逻辑,代码中有两组组组,组和用户,都是ArrayList 现在这个users.size()+groups.size()给出了总计数,在getView中,我必须告诉这个视图是属于组还是属于用户 public class ProfileAdapter extends BaseAdapter { ArrayL

我有下面的BaseAdapter,问题是我看到一个ImageView循环问题,图像显示在另一个ImageView中。问题只发生在快速滚动时,我在这里做错了什么

让我带您了解我要做的事情的逻辑,代码中有两组组组,组和用户,都是ArrayList

现在这个users.size()+groups.size()给出了总计数,在getView中,我必须告诉这个视图是属于组还是属于用户

public class ProfileAdapter extends BaseAdapter {

    ArrayList<String> groups = new ArrayList<>();
    ArrayList<String> users = new ArrayList<>();
    count = users.size() + groups.size();


    public int getCount() {
        return count;
    }

    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {

        final ViewHolder holder;
        if (convertView == null) {
            convertView =  infalter.inflate(R.layout.grid_item, null);
            holder = new ViewHolder();
            holder.image = (ImageView) convertView.findViewById(R.id.grid_image);
            holder.name = (TextView) convertView.findViewById(R.id.name);
            convertView.setTag(holder);

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

        holder.image.setImageResource(android.R.color.darker_gray);


        if (position < groups.size()) {
            //I'm in the group section so get me the group name 
            holder.name.setText(groups.get(position));
            TextDrawable drawable = TextDrawable.builder().beginConfig()...;
            holder.image.setImageDrawable(drawable);

        } else {
        //I'm in the user section so get me the user image
        //this is where the problem is happening
         imageLoader.displayImage( "file://" + users.get(position - groups.size()), holder.image);

        }

        return convertView;
    }


    class ViewHolder {
        ImageView image;
        TextView name;


    }


}
公共类ProfileAdapter扩展了BaseAdapter{
ArrayList组=新的ArrayList();
ArrayList用户=新建ArrayList();
计数=users.size()+groups.size();
public int getCount(){
返回计数;
}
@凌驾
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
最终持票人;
if(convertView==null){
convertView=infalter.充气(R.layout.grid_项,空);
holder=新的ViewHolder();
holder.image=(ImageView)convertView.findViewById(R.id.grid\u image);
holder.name=(TextView)convertView.findViewById(R.id.name);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.image.setImageResource(android.R.color.深色);
如果(位置
我想说的问题是:
imageLoader.displayImage
-是一个异步函数,在边缘情况下,任务可能会将图像加载到回收的ImageView中


回收视图时应尝试调用:
imageLoader.cancelDisplayTask
,对正在回收的ImageView执行此操作。

我认为这是因为您使用的UIL库,请检查此问题。

您到底面临什么问题?您是否在用户部分看到textview或图像不在适当位置?ImageView问题,图像不在适当位置。