我有一个 ListView,它应该有四种不同类型的项目。我搜索了它,找到了可行的不同解决方案,并尝试像其他人一样做我的事情。我创建了不同的 ViewHolders(每种类型一个)。当 ListView 第一次出现时,一切都很好。但是当我开始滚动时,我得到了一个 classCastException。原因很明显:
holder = (FeedViewHolder) convertView.getTag();
如果它不为空,我的适配器尝试通过从 convertView 获取标签来获取 ViewHolder。但是这个 ViewHolder 似乎是前一个项目的 ViewHolder 所以不能投射。
我搜索 StackOverflow 和 Google,但所有示例似乎都有效,因为它们对不同的项目使用相同或相当相等的 ViewHolders。但是我的对象确实彼此不同,需要不同的 ViewHolders。谁能帮我解决这个问题?