2012-04-19 20 views
0

オンデマンドでTabActivityにビュー(アクティビティではない)を追加しています(つまり、onCreateが完了してからアクティビティに0以上のタブがあることを意味します)。時間が経つにつれて、タブが追加されるようになりました。後でそれらを元に戻すことができるように、それらを節約する必要があります。私は個々のビューでsaveHierarchyStateなどを使用しようとしましたが、それらはeditTextsなどのデータなしで復元されます。Android TabActivityと動的タブ画面の向きの問題

したがって、私はTabキーからビューにマップするアクティビティにHashMapを持っています。それを復元する? Androidはビューステートを復元することができ、このアプローチを使用して -

答えて

0

さて、私は私が説明したhereとしてビューのIDを設定するために必要なと思っまずそれ:)

を得ました。しかし、私のダイナミックなタブはすべて同じレイアウトのビューを使用しているので、子供たちはすべて同じIDを持つので、アンドロイドはデータを上書きします(状態はビューIDに従って疎な配列に保存されるため、IDは一意でなければなりません)。ビューは同じように見えます。このアプローチは、私はビューのIDを設定しないことにより、Androidはすべての作業をやらせることができれば、私はまだ見つけるために持って動作しますが

SparseArray<Parcelable> container = new SparseArray<Parcelable>(); 
saveHierarchyState(container); 
b.putSparseParcelableArray("state", container); 
restoreHierarchyState(b.getSparseParcelableArray("state")); 

:私は手動で私の意見の状態を保存し、経由して、それを再適用することを固定しましたレイアウトxmlファイル(許可されているか可能であれば)。