如果我想,以紀念我做下面的代碼的第二項的項(改變背景顏色): 此代碼是從我的適配器,擴展ArrayAdapter:當標誌着ListView中它重複其他項目
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.channel_list, null);
}
MyContent o = items.get(position);
if (o != null) {
TextView tt = (TextView) convertView.findViewById(R.id.toptext);
TextView bt = (TextView) convertView.findViewById(R.id.bottomtext);
if (tt != null) {
tt.setText(o.Top());
}
if(bt != null){
bt.setText(o.Bottom());
}
if(position == 2) {
convertView.setBackgroundColor(R.color.selectem_color);
}
}
return convertView;
它會顯示列表視圖,但會在此項目之後的第9個項目(第11項第13等等)標記。
有誰知道是什麼原因?
嗨,你的回答是正確的,但它不能解決它。回收的元素現在獲得了不同的位置,但這是方向。 謝謝你的回答! – Adi 2010-05-31 13:54:30
對不起阿迪,但我不可能知道你的代碼如何工作。將其更改爲更類似代碼的僞代碼。 重要的是,你不能相信convertView是一個乾淨的新對象,它也可能是一個適配器之前更改過的對象。 – Janusz 2010-05-31 14:12:07
適用於帶有「convertView.setBackgroundResource」..但不適用於顏色的圖像 我認爲它可能與繪圖緩存相關 – Adi 2010-05-31 14:32:34