2012-04-19 204 views
0

我正在按需添加視圖(不是活動)到TabActivity(意味着活動在onCreate完成後可以有零個或多個選項卡)。隨着時間的推移,更多的標籤會被添加,現在我需要以一種理智的方式保存它們,以便稍後恢復它們。我試圖在各個視圖上使用saveHierarchyState等,但是它們在沒有來自editTexts等數據的情況下被恢復。Android TabActivity和動態選項卡屏幕方向問題

因此,假設我在從tabkeys映射到視圖的活動中有一個HashMap,那麼如何保存這些數據並恢復它?

回答

0

好吧,我知道了:)

首先,我想我需要設置視圖的ID描述here - 使用這種方法Android是能夠恢復的視圖狀態。但是由於我的動態選項卡都使用相同佈局的視圖,所以他們的孩子都具有相同的ID,所以android會覆蓋數據(狀態根據視圖ID保存在一個稀疏數組中,因此ID應該是唯一的),所有視圖看起來一樣。我固定,通過手動保存自己的看法的狀態,並通過重新應用它:

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

雖然這種方法我還需要知道,如果我可以讓Android爲通過在瀏覽未設置標識做所有的工作佈局xml文件(如果允許/可能的話)。