我有一个 list 。每行包括左侧的图像和右侧的两个 TextView 。 基于服务器标志,我的应用程序打开系统媒体播放器或打开另一个 Activity 来显示新闻详细信息。
在我的适配器中,我想在视频图像(不是新闻图像)上添加另一个图像。因此,在 Row 的 XML 文件中,我有另一个 ImageView ,其可见性设置为“不可见”,我想将视频的每一行设置为“可见”。
getView()方法是这样的:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = myInflater.inflate(R.layout.list_news_adapter, null);
holder = new ViewHolder();
holder.ivIcon = (ImageView) convertView.findViewById(R.id.list_news_icon);
holder.ivPlay = (ImageView) convertView.findViewById(R.id.list_news_PlayIcon);
holder.tvTitle = (TextView) convertView.findViewById(R.id.list_news_title);
holder.tvDate = (TextView) convertView.findViewById(R.id.list_news_date);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvTitle.setText(mLatestNews.getTitle().get(position));
holder.tvDate.setText(localTime.get(position));
if(mLatestNews.getType().get(position).equalsIgnoreCase("VIDEO"))
holder.ivPlay.setVisibility(View.VISIBLE);
// Load and display image
String imageUrl = (mLatestNews.getImageLink().get(position));
imageUrl = imageUrl.trim().replaceAll(" ", "%20");
imageLoader.displayImage(imageUrl, holder.ivIcon, options);
return convertView;
}
static class ViewHolder {
ImageView ivIcon;
ImageView ivPlay;
TextView tvTitle;
TextView tvDate;
}
通常列表的前四项是视频,其余是新闻。当我运行该应用程序时,对于某些新闻项目,不仅会激活 4 个第一个项目,甚至第二个图像也会被激活(设置为可见)。
正确的结果如下图所示:
但滚动列表后,第二个图像(白色三角形)添加到新闻项中。就像这个图片:
我不知道为什么会发生这种情况。任何建议将不胜感激。
最佳答案
天呐!!!
它只需要“其他”。我把代码改成了这样:
if(mLatestNews.getType().get(position).equalsIgnoreCase("VIDEO"))
holder.ivPlay.setVisibility(View.VISIBLE);
else
holder.ivPlay.setVisibility(View.INVISIBLE);
现在,它正在工作。
关于Android,如何动态更改 ListView 的 ImageView 项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11043974/