2015-02-06 4 views
1

У меня этот код отключен. Его горизонтальный список. Проблема в том, что одни и те же изображения загружаются вместо разных. Что может быть проблемой? Я не думаю, что здесь есть проблема с пикассо. Я думаю, что-то еще.Горизонтальный список изображений Загрузка одинаковых изображений из URL (с использованием Picasso)

@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

Вы не используете значение position в любом месте внутри getView функции. 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; 
}