我是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()。
什麼才能正確地做到這一點? (並希望修復我的崩潰;-))。
問候 巴特
我改變了MenuListActivity類的MenuListAdapter作爲一個成員變量和崩潰似乎已停止。 – 2012-01-16 12:12:48