【发布时间】:2015-01-15 14:36:14
【问题描述】:
我有一个执行电影搜索并将 JSON 结果解析为“电影”对象的活动。 解析电影对象后,将被插入 ListView 适配器。 当我改变方向时,活动重新开始,结果消失了。
我怎样才能防止这种情况发生或保存对象并在RestoreInstanceState 上恢复它们?
我已经尝试过 onConfigurationChanged。
【问题讨论】:
标签: android json listview bundle instance
我有一个执行电影搜索并将 JSON 结果解析为“电影”对象的活动。 解析电影对象后,将被插入 ListView 适配器。 当我改变方向时,活动重新开始,结果消失了。
我怎样才能防止这种情况发生或保存对象并在RestoreInstanceState 上恢复它们?
我已经尝试过 onConfigurationChanged。
【问题讨论】:
标签: android json listview bundle instance
你需要做一些重构。
首先实现 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();
}
}
【讨论】: