someclass_adapterEvents_part 有 20 个项目。循环结束后,GlobalData.buffer 得到了 40,someclass_adapter 得到了 40,我真的很困惑! someclass_adapter 和 GlobalData.buffer 在循环之前都是空的。
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 来初始化 someclass_adapter 就像
someclass_adapter = new SomeClassAdapter(this, R.layout.lv_events_item, GlobalData.buffer);
最佳答案
看起来您的 someclass_adapter 正在包装缓冲区实例。所以本质上你是在同一个 ArrayList 中添加两次相同的元素。只需将它们添加到适配器就足够了。
关于java - 为什么循环将 ArrayList 中添加的项目加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19094903/