所以我正在创建一个滑动益智游戏应用程序,并且当前使用在活动的onCreate方法中创建的位图数组列表填充GridView。然后我使用Collections.swap来交换这些图像,然后我重新加载我的GridView来更新屏幕上的GridView。
这一功能完美无缺,直到手机方向改变为止。 GridView图像(拼图块)返回到它们的开始发布(在Collections.swap之前)。
我已经能够通过使用SharedPreferences保存旋转分数,这非常有效。但是,我不知道如何将位图或位图的ArrayList保存到SharedPreferences。有没有办法做到这一点?还是有替代方案吗?
答案 0 :(得分:0)
我通过创建一个使用state.putSerializable保存我的列表数组的onSavedInstanceState方法来改变方向:
@Override
protected void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putSerializable(tileLocationsKey, puzzleTilesList);
}
然后我通过这样做检查他们是否是我的onCreate方法中保存的实例状态:
if ((savedInstanceState != null) && (savedInstanceState.getSerializable(tileLocationsKey) != null)) {
puzzleTilesList = (ArrayList<Bitmap>) savedInstanceState.getSerializable(tileLocationsKey);
}
并且如果!= null则它使用保存的列表数组。