Android – Каков правильный способ сохранения / восстановления адаптера ListView?

Я хочу сохранить / восстановить при изменении ориентации экземпляр List<Contact> для ListView ; Contact – это элемент для отображения в пользовательском адаптере массива.

Я onSaveInstanceState(Bundle savingInstanceState) список, лежащий в основе адаптера в 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(); 

Правильно ли это?

У вас есть лучшее / более разумное решение?

спасибо

Solutions Collecting From Web of "Android – Каков правильный способ сохранения / восстановления адаптера ListView?"