2012-07-18 98 views
0

我已經設置了自定義的水平分頁在我的應用程序可以說5頁。每個頁面都有自己的ListView和ListView適配器。在我的主Activity類中,我有一個用於保存每個ListView的自定義對象的ArrayList。Android的Java引用對象被破壞

所以在我的主類,我可以打電話:

lvAdapter.setItems(items); 

工作正常。

但是,當我打電話:

lvAdapter.clearItems(); 

我只希望它來清除在ListView的項目,但它實際上從我的ArrayList該對象中刪除所有項目。我想適配器只是拿着一個參考?

適配器clearItems:

public void clearItems() 
{ 
     this.items.clear(); //this will remove the object in the ArrayList 
     this.notifyDataSetChanged(); 
} 

我所試圖做的是對那些不可見的網頁積極可見頁面和clearItems setItems。因爲我用了內存崩潰的問題時我加載一次所有的網頁...

回答

1

你可以清除該ListView例如適配器參考listView.setAdapter(null)

我還會詳細閱讀高效的Adapter實現方法,您可以採取以下幾項措施來減少內存佔用回收的觀點正確的getView(...)