activity
構成変更中およびfragment
構成変更時にデータを保存する適切な方法は何ですか? 私は持っていactivity
てNavigationDrawer
、現在選択されている項目の位置を ListView に保存したいだけでなく、からデータを保存したいと考えていますfragment
。onSaveInstanceState
オブジェクトをアクティビティに保存しようとしましたが、この場合、データをフラグメントに保存できません (onSaveInstanceState
フラグメント クラスを使用)。データを保存する適切な方法activity
とそのfragment
構成変更は何ですか?
2 に答える
1
A. Fragment
おそらく向きの変更を処理する最善の方法は、 を呼び出すsetRetainInstance(true)
ことですonCreate
。このようにして、フラグメントは分離されますが、そのインスタンスは方向の変更時に破棄されません。アクティビティが再作成されると、同じフラグメント インスタンスがアタッチされます。ただし、以前のアクティビティから何かを保持してメモリ リークを引き起こさないように十分に注意する必要があります。
データを保持するもう 1 つのオプションは、上書きonSaveInstanceState
です。
B. アクティビティ
フラグメント内の重いデータを移動したら、理論上はアクティビティの再現についてあまり心配する必要はありません。ビューに一意の ID を適切に設定している場合、Android は以前に入力したデータを保持する必要があります。モデルデータがある場合は、savedInstance
バンドルに入れます。繰り返しますが、 Bundle パラメータonSaveInstanceState
からデータを上書きして取得します。onCreate
于 2013-11-04T13:11:48.533 に答える
0
于 2013-11-04T13:08:53.030 に答える