ListViewのChoiceModeはConfigurationChangeによる復元対象外!?

復元可能な情報にChoiceModeは含まれていない。

4.0.3_r1 時点での記事。

普段からよく使うListViewは、当然ながらView.onSaveInstanceState()をOverrideしている。
したがってConfigurationChangeを受けると状態が復元する。
復元する項目は色々ある。
  • 選択位置
  • フィルター
  • ChoiceModeの選択状態
  • など
しかしなぜか、mChoiceModeだけは復元しないのだ。
復元情報としては十分に保存可能なのだが、選択状態だけ転送するのである。
そのうえ
public void setChoiceMode(int choiceMode)
を叩くとせっかく自動復元していた選択状態も clearChoices() されてしまう。

この問題は ListFragment の縦横切替から自動復元する際に困った内容だ。
カーソル位置などはここに書いた通りで復元するが、ChoiceModeは戻らない。



最終更新:2012年01月22日 04:40