我已经在我的应用程序中设置了自定义水平分页,比如说5页。每个页面都有自己的ListView和ListView适配器。在我的主Activity类中,我有一个自定义对象的ArrayList,我使用它来更新每个ListView。
所以在我的主类中,我可以调用:
lvAdapter.setItems(items);工作正常。
但是当我打电话的时候:
lvAdapter.clearItems();我只想让它清除ListView中的项,但实际上它会从我的ArrayList中删除该对象的所有项。我猜Adapter只持有一个引用?
适配器clearItems:
public void clearItems()
{
this.items.clear(); //this will remove the object in the ArrayList
this.notifyDataSetChanged();
}我正在尝试做的是在活跃的可见页面上使用setItems,在那些不可见的页面上使用clearItems。因为当我一次加载所有页面时,我正在处理内存不足崩溃……
发布于 2012-07-18 23:01:47
您可以清除该ListView的适配器引用,例如listView.setAdapter(null)
我还会阅读有关高效Adapter实现的文章,您可以做几件事来减少内存占用,例如在getView(...)中正确回收视图
https://stackoverflow.com/questions/11544307
复制相似问题