我想要在更改方向时保存/恢复实例的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