我正在创建一个ListView
which 作为 aTextView
和ImageView
一个列表项行。
最初我在列表视图视图中从本地数据库加载默认项目,我在列表视图update button
顶部有一个从服务器加载更多项目
当用户按下时,update button
我正在触发从服务器AsyncTask
中提取图标 url 和文本的 a。
要在 ImageView 中加载图标,我正在使用ImageDownloader示例,但问题是我的 ImageView 与 ViewHolder 模式的旧 ImageViews bcoz 重叠。那么有人可以指出我在做什么错吗?
这是我的 ListView 适配器代码
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
TemplateData data = (TemplateData) this.getItem( position );
if(convertView == null){
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=inflater.inflate(R.layout.text_template_default_row, parent, false);
holder = new ViewHolder();
holder.templateText = (TextView) convertView.findViewById(R.id.defText);
holder.templateIcon = (ImageView)convertView.findViewById(R.id.defIcon);
holder.templateTitle = (TextView) convertView.findViewById(R.id.defTitle);
convertView.setTag(holder);
}else{
holder = (ViewHolder)convertView.getTag();
}
holder.templateText.setText(data.getText() );
holder.templateTitle.setText(data.getTemplateTitle());
//isImageLoading initially sets to false so that default items will use the
// resource ids , it gets falsed when AsyncTask finished load Images and update the
//adapter and at that time this adapter has to pic the image from ImageDowloader
if(!isImageLoading)
data.setTemplateIconId(iconList[position]);
//Has resource id but not icon url
if(data.getTemplateIconId()!=0 && data.getTemplateIconUrl()==null ){
Log.d("Load icon ","Default Load");
holder.templateIcon.setBackgroundResource(data.getTemplateIconId());
// does not has recource id so load url from server
}else if(data.getTemplateIconUrl()!=null && data.getTemplateIconId()==0){
Log.d("Load icon ","From Server Load");
imageDownloader.download(data.getTemplateIconUrl(), (ImageView) holder.templateIcon);
}
return convertView;
}
iconList 包含应用程序中现有图标的资源 ID。请随时询问是否有人想要更多信息。
编辑
这是屏幕截图
最初将有 8 个模板及其图标,它们仅从存储在 android 手机中的数据库中加载。它的名字从模板 1 到模板 6
现在,当用户按下更新按钮时,新模板将在这里加载。它的名称从模板新 1 到模板新 9 开始,但是当我向上滚动 n 向下时,imageViews 会重叠
这是屏幕截图