从onRestoreInstanceState()刷新RecyclerView并不起作用

时间:2017-11-22 10:12:34

标签: android android-recyclerview onrestoreinstancestate

我想恢复(进入onRestoreInstanceState)一些数据,更确切地说是一个带有本地文件路径的数组。我的适配器使用此数组来显示图像(本地):

@Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {

        ....

        mPicturesList = savedInstanceState.getParcelableArrayList(BUNDLE_KEY_INPUT_FILE_PATH);

        if (mPicturesList != null && mPicturesList.size() > 0) {
            // Refresh list
            mItemPostPictureAdapter.notifyDataSetChanged();
        }             

        super.onRestoreInstanceState(savedInstanceState);
    }

不幸的是我的名单永远不会从这里刷新,我不知道为什么。我在我的适配器中放了一个断点,它从未在这里调用。

正常流程中,刷新列表完美运行,但不是来自onRestoreInstanceState()函数......

1 个答案:

答案 0 :(得分:-1)

视图有自己的恢复方法,如果视图具有android:id属性集,则会自动调用这些方法。列表视图(如recycle或listview)可以恢复其滚动位置,但不能恢复适配器。

因此,您需要重新创建适配器,使用相应的内容填充它并为RecyclerView设置。