java - 为什么循环将 ArrayList 中添加的项目加倍

标签 java android arraylist android-arrayadapter

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/

相关文章:

对于来自市场的安装,Android Market 安装引荐来源网址为空。这是错误还是正常行为?

java - 如何初始化整个应用程序所需的对象?安卓

java - 更改列表java的值

java - ArrayList通过删除最小值来计算平均值

java - 构造函数与getter和setter的区别

java - JSP/JSTL中的加密

java - 正确的 XPath 但 sendKeys() 在 Selenium 中不起作用

android - 自定义警报对话框滚动问题

java - 使用 toString 打印 ArrayList

java - 分析作为服务运行的 java 应用程序(本地/远程)