我正在使用ListView和自定義對象膨脹到getView方法中。Android ListView正在回收仍在屏幕上的項目
我的問題開始於ListView觸發onItemClicked事件時,它重新繪製項目。
這不是問題。實際問題出現是因爲我正在回收getView給我的項目。
在我進入之前,下面是我使用的代碼。
public View getView(int position, com.abc.rxcard.Item itemAtPosition,
View convertView, ViewGroup parent) {
LinearLayout thisItem;
//Get the current alert object
//Inflate the view
if(convertView==null)
{
thisItem = new LinearLayout(this);
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater vi;
vi = (LayoutInflater)this.getSystemService(inflater);
vi.inflate(R.layout.offerrow, thisItem, true);
}
else
{
thisItem = (LinearLayout) convertView;
}
Log.d("thisItem","This Item is Index " + position + " " + thisItem.toString() + " " + Integer.toHexString(System.identityHashCode(thisItem)));
//Get the text boxes from the listitem.xml file
TextView caption =(TextView)thisItem.findViewById(R.id.caption);
TextView subText =(TextView)thisItem.findViewById(R.id.subText);
ImageView icon = (ImageView)thisItem.findViewById(R.id.offerIcon);
//Assign the appropriate data from our alert object above
caption.setText(itemAtPosition.text());
subText.setText(itemAtPosition.subText());
MyUtils.setImageFromURLInBackgroundThread(icon, itemAtPosition.icon());
return thisItem;
}
當我點擊物品時出現問題。 日誌輸出如下
04-20 14:36:28.402: DEBUG/thisItem(12495): This Item is Index 0 [email protected] 44db1c50
04-20 14:36:28.432: DEBUG/thisItem(12495): This Item is Index 1 [email protected] 44da9038
04-20 14:36:28.442: DEBUG/thisItem(12495): This Item is Index 2 [email protected] 44d2ee48
04-20 14:36:28.932: DEBUG/thisItem(12495): This Item is Index 0 [email protected] 44d2ee48
04-20 14:36:28.952: DEBUG/thisItem(12495): This Item is Index 1 [email protected] 44da9038
04-20 14:36:28.962: DEBUG/thisItem(12495): This Item is Index 2 [email protected] 44db1c50
04-20 14:36:29.622: DEBUG/thisItem(12495): This Item is Index 0 [email protected] 44db1c50
04-20 14:36:29.652: DEBUG/thisItem(12495): This Item is Index 1 [email protected] 44da9038
04-20 14:36:29.662: DEBUG/thisItem(12495): This Item is Index 2 [email protected] 44d2ee48
正如你所看到的索引0和2翻動的物品來回。如果這些項目實際上不在屏幕上,現在這不是問題。但是,當我點擊這些項目(並且因爲圖像是在後臺線程中加載的),項目1和項目3上的圖像會在每次點擊時來回翻轉。
這似乎是一個不好的行爲。
我不確定在世界上做什麼,解決問題。有沒有設置或什麼,我可以把ListView阻止它這樣做?