我的应用程序有一个列表视图和listview的行由imageView和Textview组成。该应用程序从网上下载图像以在行布局中设置imageview。当我在列表视图中上下滚动时,我遇到了有关图像重新下载的问题。为此,我使用ViewHolder模式保存列表项。问题已经解决,但这次我有一个新问题。当我滚动列表视图时,项目的位置正在改变
列表视图中有15行。因此,列表底部的项目不会显示。当我在列表中查看项目时,列表顶部的项目即将结束。另外,当我匆匆列出清单时,列表末尾的项目即将到来。
所以它不显示需要显示的值或行。
我getView()方法的最后状态..
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row_layout, null);
TextView programName = (TextView)convertView.findViewById(R.id.programName);
TextView programTime = (TextView)convertView.findViewById(R.id.programTime);
TextView programState = (TextView)convertView.findViewById(R.id.programState);
ImageView programImage = (ImageView)convertView.findViewById(R.id.programImage);
programName.setText(values.programNames.get(position));
programTime.setText(values.programTimes.get(position));
new imageDownload(programImage).execute(values.programImageUrls.get(position));
viewHolder = new ViewHolder();
viewHolder.p_Name = programName;
viewHolder.p_Time = programTime;
viewHolder.p_State = programState;
viewHolder.p_Image = programImage;
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
return convertView;
}
我的观点持有人...
public static class ViewHolder {
TextView p_Name;
TextView p_Time;
TextView p_State;
ImageView p_Image;
}
谢谢很多
因为programName textview超出了if/else语句的范围,所以您需要将其附加到viewholder.p_name.setText()。 – MrPancake 2014-10-16 15:52:05
你对某些(固定的) – 2014-10-16 16:42:16