リストがあります。各行には、左側に画像、右側に2つのテキストビューが含まれています。サーバーフラグに基づいて、アプリケーションはシステムメディアプレーヤーを開くか、別のアクティビティを開いてニュースの詳細を表示します。
アダプターで、ビデオ画像(ニュース画像ではない)の上に別の画像を追加したいと思います。したがって、行のXMLファイルには、可視性が「非表示」に設定されている別の画像ビューがあり、ビデオである各行に対して「可視」に設定したいと思います。
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つの項目はビデオで、残りはニュースです。アプリケーションを実行すると、最初の4つのアイテムだけでなく、一部のニュースアイテムの2番目の画像もアクティブ化(表示に設定)されます。
正しい結果は次のようになります。
ただし、リストをスクロールすると、2番目の画像(白い三角形)がニュースアイテムに追加されます。この画像のように:
なぜそれが起こるのか分かりません。任意の提案をいただければ幸いです。