我正在处理一个基于ListView的应用程序,我有一个非常奇怪的问题,我的ListItems重新包装,正确的项目没有显示在正确的位置。为了便于理解,我将每个ListItem上的文本设置为与其位置相同。我在我的适配器getView()调用中执行此操作。如果我有Nexus 7 4 ListItems可见。如果我总共有10个ListItems,那么它将变为0,1,3,4,0,1,2,3,4。这适用于所有设备,假设最初在屏幕+1上的项目数量是正确的而所有其他ListItems被重新安装。Android ListView项目收纳
在我的代码的哪一部分,你们认为我的问题在于,因为现在我一直在努力解决这个问题几个小时,而且我很无能。非常感谢所有帮助。
编辑:
这里是我的getView():
@Override
public View getView(int position, View convertView, ViewGroup parent) {
CountdownItem ci = mTitle.get(position);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, parent, false);
holder = new CountdownViewHolder();
holder.mTitle = (TextView) convertView.findViewById(R.id.textPrim);
holder.mSubtitle = (TextView) convertView
.findViewById(R.id.textSec);
holder.mDayProgress = (ProgressBar) convertView
.findViewById(R.id.day_progress);
holder.mMonthProgress = (ProgressBar) convertView
.findViewById(R.id.month_progress);
holder.mYearText = (TextView) convertView
.findViewById(R.id.year_text);
holder.day_help = (TextView) convertView
.findViewById(R.id.day_help);
holder.month_help = (TextView) convertView
.findViewById(R.id.month_help);
holder.setTitle(Integer.toString(position) + " Title");
holder.setSubtitle(ci.getSubtitle());
holder.fixImageAndText(position);
convertView.setTag(holder);
} else {
holder = (CountdownViewHolder) convertView.getTag();
}
return convertView;
}
发布你的'getView()'方法的代码。 ListAdapter可以回收视图,也许你没有正确考虑这一点。 –
@DavidWasser我的getView()已被添加。 – SweSnow