someclass_adapterEvents_part有20個項目。循環結束後,GlobalData.buffer得到了40,而一些class_adapter得到了40,我真的很困惑!在循環之前,someclass_adapter和GlobalData.buffer都是空的。爲什麼循環加倍ArrayList中的項目添加
SomeClass tmp_sc;
for (int i = 0; i < events_part.size(); i++)
{
tmp_sc = events_part.get(i);
someclass_adapter.add(tmp_sc);
GlobalData.buffer.add(tmp_sc);
}
someclass_adaper是適配器延伸ArrayAdapter(SomeClass的) 和緩衝器是靜態的ArrayList(SomeClass的)。它在java中,特別是android代碼中。 我用Global.buffer到initzialized someclass_adapter像
someclass_adapter = new SomeClassAdapter(this, R.layout.lv_events_item, GlobalData.buffer);
在循環之前和之後打印尺寸。在循環之前,您確定GlobalData.buffer是空的嗎? – Cruncher
添加項目後需要清除'ArrayList',並通過在添加項目之前和添加項目之後打印日誌來查看兩個arraylist的大小 – GrIsHu
執行如下檢查:'if(someclass_adapter == GlobalData.buffer){ System.out.println(「他們是相同的」);}'看看這兩者是否是相同的......可能會發生,你通過兩個**不同的名稱引用**相同的集合**。 .. – ppeterka