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