2017-11-22 11 views
1

いくつかのデータ、より正確にはローカルファイルのパスを持つ配列を(onRestoreInstanceStateに)復元します。この配列は、(ローカル)の画像を表示するために私のアダプタが使用されます。onRestoreInstanceState()からRecyclerViewをリフレッシュすると動作しません。

@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()関数から...

+0

アレイを復元しているだけですが、アダプタに戻すことはできません。したがって、 'notifyDataSetChange'は何もしません。私はまた、あなたのアダプタコードを投稿することをお勧めします。 – Enzokie

答えて

-1

ビュービューはandroid:idプロパティセットを持っている場合は自動的に呼び出され、独自の復元方法を持っていません。リストビュー(リサイクルやリストビューなど)は、スクロール位置を復元できますが、アダプターは復元できません。

したがって、アダプターを再作成し、対応する内容で記入し、RecyclerViewに設定する必要があります。

関連する問題