2015-02-06 74 views
1

我已经剪掉了这段代码。它是一个水平列表视图。问题是相同的图像被加载而不是不同的图像。可能是什么问题?我认为毕加索不是这里的问题。我猜它是别的。水平列表视图从URL加载相同的图像(使用毕加索)

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder = null; 
//  View timeLineRow = LayoutInflater.from(parent.getContext()).inflate(R.layout.dashboardtimelinerow, null); 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.toprecommendationsitem, parent, false); 

      holder = new ViewHolder(); 
      holder.recommimage = (ImageView) convertView.findViewById(R.id.recommimage); 
      holder.userImage = (CircularImageView) convertView.findViewById(R.id.userImage); 

      convertView.setTag(holder); 
     } else 
      holder = (ViewHolder) convertView.getTag(); 
     int i=0; 
     for(i=0; i<mArrayListData.size(); i++) { 
      if (!mArrayListData.get(i).getDishimageurl().isEmpty()) { 
       Picasso.with(mContext) 
         .load(mArrayListData.get(i).getDishimageurl()) 
         .resize(172, 172) 

         .into(holder.recommimage); 
       break; 

      } 
     } 

     return convertView; 
    } 

回答

1

你不使用你getView函数中的任何地方position价值。 getView应该返回索引position无论哪个数据块位于视图阵列中或列出你过去。你会想用什么来代替你的代码像

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 

    if (convertView == null) { 
     LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = mInflater.inflate(R.layout.toprecommendationsitem, parent, false); 

     holder = new ViewHolder(); 
     holder.recommimage = (ImageView) convertView.findViewById(R.id.recommimage); 
     holder.userImage = (CircularImageView) convertView.findViewById(R.id.userImage); 

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

    if (!mArrayListData.get(position).getDishimageurl().isEmpty()) { 
     Picasso.with(mContext) 
       .load(mArrayListData.get(position).getDishimageurl()) 
       .resize(172, 172) 
       .into(holder.recommimage); 
    } 

    return convertView; 
}