Я использую представление списка для отображения файлов Android, т.е. показа папки и файлов с сервера.
Когда я начинаю свою деятельность, я вижу список на экране, как я этого хочу. и я получаю данные с сервера. Я хочу показать структуру как
когда есть файл изображения, необходимо показать миниатюру изображения (у меня есть URL-адрес миниатюры, который получает с сервера по умолчанию загрузчик изображений, отображающий значок изображения по умолчанию, пока миниатюра не станет доступной).
когда есть другой тип файла, такой как аудио, видео..... или файл, необходимо показать этот значок.
и когда я показываю список, он показывает правильный значок для связанных файлов. Но в тот момент, когда я пытаюсь начать прокрутку, и в фоновом режиме моя миниатюра загружается с сервера, и когда с сервера я получаю изображение с сервера и показываю эту растровую миниатюру, она будет отображать растровую миниатюру в другом типе файла, таком как значок папки или музыкального файла, из-за просмотреть повторное использование списка. это неуместно происходит при получении изображения с сервера.
любой может предложить мне, как преодолеть эту проблему. ниже мой метод getview() моего списка.
public View getView (int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = new ViewHolder();
if(convertView == null){
convertView = _inflate.inflate(R.layout.layout_list, null);
viewHolder.text = (TextView) convertView.findViewById(R.id.title);
viewHolder.owner = (TextView) convertView.findViewById(R.id.owner);
viewHolder.image = (ImageView) convertView.findViewById(R.id.thumb);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
HashMap<String, String> item = (HashMap<String, String>) getItem(position);
viewHolder.text.setText( item.get("poiName").toString() );
viewHolder.owner.setText( item.get("owner").toString() );
ImageView imageView = viewHolder.image;
imageView.setTag(item.get("thumbs"));
//Is type of file is picture then display thumbnail by using imagloader class
if (genericDAO.sub_content_type.equalsIgnoreCase(Constants.TYPE_PICTURE))
{
String url = getTumbnalURL();
viewHolder.image.setTag(genericDAO.id);
viewHolder.image.setScaleType(ScaleType.CENTER_CROP);
mImageLoader.DisplayImage(id, url, mActivity,viewHolder.image);
}
else
{
//Display related file icon
viewHolder.image.setImageResource(FileUtil.getImageRelatedToFileType(mcontext, sub_ext));
}
return convertView;
}