onRestoreInstanceState

onRestoreInstanceState

ArrayList是在类级别定义的。
这些是我的saveInstance方法:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putStringArrayList("savedList", list);
}


@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    list=savedInstanceState.getStringArrayList("savedList");
}

但是仍然,当我改变方向时,ArrayList是空白的

最佳答案

当您使用onRestoreInstanceState()还原状态时,它会在onStart()之后调用,因此在定义适配器后,将使用保存的状态更新列表。最好的选择是使用onCreate()还原列表,方法是用onRestoreInstanceState()还原列表。您也可以重新定义适配器或调用notifyDataSetChanged()

10-08 15:28