#android #android-listview #custom-adapter #listview-adapter #android-viewholder
#Android #android-listview #пользовательский адаптер #listview-адаптер #android-viewholder
Вопрос:
У меня есть список изображений, которые я показываю с помощью универсального загрузчика изображений, теперь я пытаюсь поместить объявление между ними в позицию 4, но это объявление заменяет изображение в этой позиции.. При взгляде на позиции и URL-адреса кажется, что все в порядке. Что-то не так с пользовательским адаптером? Или можно ли что-то сделать в xml?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
System.out.println(position " " urls.get(position));
if (convertView == null)
{
holder = new ViewHolder();
switch (type)
{
case TILBUD:
convertView = mInflater.inflate(R.layout.image_row, null);
holder.imageView = (ImageView)convertView.findViewById(R.id.image_row);
imageLoader.displayImage(urls.get(position), holder.imageView, options);
break;
case AD_SPACE_1:
convertView = mInflater.inflate(R.layout.ad_space_row_1, null);
adSpace1 = (AdSpace)convertView.findViewById(R.id.ad_row_1);
adSpace1.setSID(returnSID(store, "ad1"));
adSpace1.setAdEventListener(adEventListener);
adSpace1.setAdErrorEventListener(adErrorListener);
adSpace1.setAdAnimationEventListener(adAnimationListener);
adSpace1.setAdMediaEventListener(adMediaEventListener);
holder.adSpace1 = adSpace1;
adSpace1.runAd();
break;
case AD_SPACE_2:
convertView = mInflater.inflate(R.layout.ad_space_row_2, null);
adSpace2 = (AdSpace)convertView.findViewById(R.id.ad_row_2);
adSpace2.setSID(returnSID(store, "ad2"));
adSpace2.setAdEventListener(adEventListener);
adSpace2.setAdErrorEventListener(adErrorListener);
adSpace2.setAdAnimationEventListener(adAnimationListener);
adSpace2.setAdMediaEventListener(adMediaEventListener);
holder.adSpace2 = adSpace2;
adSpace2.runAd();
break;
}
convertView.setTag(holder);
}
else
{
holder = (ViewHolder)convertView.getTag();
}
return convertView;
}
}
public static class ViewHolder
{
public ImageView imageView;
public AdSpace adSpace1, adSpace2;
}
Комментарии:
1. Попробуйте определить один макет после вашего изображения в xml и основываться на позиции, подобной (позиция% 4 == 0), попробуйте Ad для этого макета в getView().
2. @Haresh попробовал это, ничего не изменил :/
Ответ №1:
Что-то не так с положением объявлений, требуется 1 для ad1 и 2 для ad2.