ListView对象上的SavedInstanceState

时间:2015-01-15 14:36:14

标签: android json listview bundle instance

我有一项活动,可以搜索电影并将JSON结果解析为“电影”对象。 解析后,将Movie对象插入ListView适配器。 当我更改oriantation时,活动重新开始并且结果消失。

如何防止这种情况发生或保存对象并将其恢复到RestoreInstanceState?

我已经尝试过onConfigurationChanged。

1 个答案:

答案 0 :(得分:0)

你需要做一些重构。

首先实现onSaveInstanceState并将列表保存到包

@Override
protected void onSaveInstanceState (Bundle outState){
  outState.putSerializable("mylist", mylist);
}

然后在您的OnCreate上检查您的捆绑包是否包含该列表并操作您的列表视图而不再重新获取您的列表

@Override
protected void onCreate (Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  if(savedInstanceState!=null && savedInstanceState.getSerializable("mylist")!=null){
      populateListView(savedInstanceState.getSerializable("mylist"));
  }else{
      fetchList();
  }
}