2014-11-25 95 views
0

致命異常:主要 java.lang.IllegalStateException:無法頭視圖添加到列表 - setAdapter已經被調用。不能頭視圖添加到列表 - setAdapter已經被稱爲

我得到這個崩潰,但它並不總是發生!其實我的測試手機沒有問題。下面是我的代碼。

構造

public MyListView(Context context) {   
    super(context); 

    adapter = new MytListAdapter(context); 
    setAdapter(adapter); 
} 

,我叫 'addHeaderView' 從服務器獲取數據後。所以我嘗試在setAdapter之前調用addHeaderView,並使用視圖屬性的可見性。但即使我設置了視圖,但它仍然有一個空間。

有什麼想法解決這個問題?

+0

試試我的答案在這裏http://stackoverflow.com/a/31181366/4489494希望這將有助於你.. – 2015-07-02 10:00:41

+0

試試我的答案在這裏http://stackoverflow.com/a/31181366/4489494希望這將有助於你.. – 2015-07-02 10:02:20

回答

4

在撥打addHeaderView()之前,請勿撥打setAdapter()。在你的情況下,這意味着不會調用addHeaderView()setAdapter(),直到「從服務器獲取數據後」。

或者,請不要使用addHeaderView(),而應該在第0個位置檢索服務器數據後修改適配器,使第0個位置成爲虛擬「標題」。

+0

我改變了我的問題,所以我嘗試了另一種方式,但它仍然有一個空間。 – kimkevin 2014-11-25 12:40:25

0

其實我通過在HeaderView中使用LinearLayout解決了這個問題。

我加的LinearLayout到HeaderView,如果我想使頭部無形的,我設置去的LinearLayout的setVisibility方法。

它根本不會產生IllegalStateException。

謝謝。