2012-01-12 98 views
0

我是Android編程的新手,但不是一般的編程或Java。我的問題主要是關於最佳實踐。Android更新到ListView活動

我創建了一個MenuListActivity類,它擴展了一個ListActivity,該ListActivity顯示列表中的菜單項,並在單擊時啓動另一個Activity。每個菜單都是MenuListActivity類的子類,並實現了getMenuItems()方法來創建菜單項。

在我的onCreate()方法中,我調用getMenuItems()來創建一個MenuListAdapter類,然後將其設置爲ListActivity的ListView的適配器。

但是,有時我得到一個illegalStateException,告訴我「適配器的內容已更改,但ListView沒有收到通知。」。注意它有時會發生,而不是所有的時候。我不碰適配器在任何其他線程,其實適配器設置是這樣的:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ArrayList<MenuAdapterItem> menuItems = getMenuItems(); 
    this.setListAdapter(new MenuAdapter(this, menuItems)); 
} 

另一種可能性,我能想到的,是創建一個適配器的成員變量,並在每次更新調用notifyDataSetChanged()。

什麼才能正確地做到這一點? (並希望修復我的崩潰;-))。

問候 巴特

+0

我改變了MenuListActivity類的MenuListAdapter作爲一個成員變量和崩潰似乎已停止。 – 2012-01-16 12:12:48

回答

0

我跑入之前這個問題,我使用的 「setNotifyOnChange(真)」;希望有所幫助。