Android - 保存/恢复ListView适配器的正确方法是什么?

Gio*_*cci 20 android listview android-listview

我想在更改方向时保存/恢复一个List<Contact>实例ListView; Contact是要在自定义数组适配器中显示的项目.

我在onSaveInstanceState(Bundle savingInstanceState)活动方法中保存适配器的基础列表:

savingInstanceState.putSerializable(""+R.id.contactList, (Serializable)adapter.contacts());
Run Code Online (Sandbox Code Playgroud)

然后在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();
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

你有更好/更聪明的解决方案吗?

谢谢

归档时间:

查看次数:

23920 次

最近记录:

14 年,9 月 前