0

我希望列表中的第一項是圖片,而後續的圖片是註釋。顯然這兩種類型的物品都有不同的佈局。我getItemViewType如下:Android適配器getItemViewType無法正常工作

@Override 
public int getItemViewType(int position) { 
    if (position == 0) { 
     return 1; 
    } else { 
     return 2; 
    } 
} 

而且我getView

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if (position == 0) { 
     if (convertView == null) { 
      ... 
     } 
    } 
    else { 
     if (convertView == null) { 
      .... 
      convertView.setTag(tag); 
     } 
     Holder holder = convertView.getTag(); 
     ... 
    } 
    return convertView; 
} 

的問題是回收的觀點仍然使用從一個位置0充氣以上的評論者的convertView!由於我沒有爲該convertView設置標籤,因此holder爲空。有什麼我做錯了嗎?注意如果有問題,我使用ArrayAdapter

回答

3

您必須覆蓋getViewTypeCount並返回你有不同的視圖類型的數量:

@Override 
public int getViewTypeCount() { 
    return 2; 
} 
+1

由於這是它! – 2014-12-03 21:11:51

0

你不應該檢查位置。

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if (getItemViewType(position) == 0) { 
     if (convertView == null) { 
      ... 
     } 
    } 
    else { 
     if (convertView == null) { 
      .... 
      convertView.setTag(tag); 
     } 
     Holder holder = convertView.get(tag); 
     ... 
    } 
    return convertView; 
} 
0

嘗試

else { 
    if (convertView == null || getViewType(position) == 2) 
相關問題