2012-06-15 57 views
2

我有一個列表。每行包括左側的圖像和右側的兩個文本視圖。 基於服務器標誌我的應用程序打開系統媒體播放器或打開另一個活動來顯示新聞細節。Android,如何動態更改列表視圖的圖像查看項目?

在我的適配器中,我想在視頻圖像(不是新聞圖像)的頂部添加另一個圖像。因此,在行的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個第一項,甚至第二個圖像將被激活(設置爲可見)的一些新聞項目。

正確的結果是這樣的形象: enter image description here

但名單的滾動之後,第二圖像(白色三角形)添加到新聞項目。喜歡這個圖像: enter image description here

我不知道爲什麼會發生。任何建議,將不勝感激。

回答

2

哦,天啊!

它只是需要「其他」。我改變了這樣的代碼:

if(mLatestNews.getType().get(position).equalsIgnoreCase("VIDEO")) 
       holder.ivPlay.setVisibility(View.VISIBLE); 
      else 
       holder.ivPlay.setVisibility(View.INVISIBLE); 

現在,它的工作。

相關問題