我想要在更改方向時保存/恢復實例的ListView
; Contact
是要在自定義陣列適配器中顯示的項目。Android - 保存/恢復ListView適配器的正確方法是什麼?
我節省了名單onSaveInstanceState(Bundle savingInstanceState)
活動方法適配器標的:
savingInstanceState.putSerializable(""+R.id.contactList, (Serializable)adapter.contacts());
然後在onRestoreInstanceState(Bundle savedInstanceState)
我恢復並設置適配器:
List<Contact> contacts =
(List<Contact>)savedInstanceState.getSerializable(""+R.id.contactList);
ContactListAdapter adapter =
new ContactListAdapter((Context)this, android.R.layout.simple_list_item_1, contacts);
contactList.setAdapter(adapter);
adapter.notifyDataSetChanged();
是它做的正確方法?
你有更好/更聰明的解決方案嗎?
謝謝
你從哪裏得到的數據?如果它已經在設備上,只需再次查詢。 – alexanderblom 2011-03-29 09:53:36
@herbalessence我不同意。至於我可以看到它似乎關於如何/何時/是否更新來自哪種類型的線程的適配器數據。謝謝。 – 2011-03-29 10:19:58
@alexanderblom數據來自互聯網,但當我改變方向時,他們已經在設備上;就在適配器內部) – 2011-03-29 10:22:38