android - 从 onRestoreInstanceState() 刷新 RecyclerView 不起作用

标签 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() 函数...

最佳答案

View 有自己的恢复方法,如果 View 设置了 android:id 属性,这些方法会自动调用。 ListView (如回收或 ListView )可以恢复其滚动位置,但适配器不能。

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

关于android - 从 onRestoreInstanceState() 刷新 RecyclerView 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47431936/

相关文章:

android - 为什么浏览应用程序屏幕上没有显示正确的应用程序名称?

java - Textview 可见性在 recyclerview 中自动创建

java - 向数组插入不同类型的数据 - Android

android - 在 Android 上实现 JKalman

android - 允许用户在 Recyclerview Android 中仅选择 1 项

android - 使用 "this"时 "implements"包含什么?

android - 如果像 flipkart 价格范围一样在 RecyclerView 中检查过,如何将复选框设置为 true

android - 如何模拟杀戮 Activity 以节省内存?

android - onRestoreInstanceState() 和唯一 View ID