Android TabActivity和动态Tabs屏幕方向问题

时间:2012-04-19 07:47:43

标签: android tabactivity

我根据需要向TabActivity添加视图(不是活动)(意味着在完成onCreate后,活动可以有零个或多个选项卡)。随着时间的推移添加了更多标签,现在我需要以理智的方式保存它们,以便我以后可以恢复它们。我试图在各个视图上使用saveHierarchyState等,但它们在没有来自editTexts等的数据的情况下被恢复。

因此,我在活动中有一个HashMap,它从tabkeys映射到视图,你将如何保存这些数据并将其恢复?

1 个答案:

答案 0 :(得分:0)

好的,我明白了:)

首先我认为我需要按照here所述设置视图的ID - 使用此方法Android可以恢复视图状态。但由于我的动态标签都使用来自相同布局的视图,因此他们的子节点都具有相同的ID,因此android将覆盖数据(状态根据视图ID保存在稀疏数组中,因此ID应该是唯一的)并且所有观点看起来一样。我通过手动保存我的视图状态并通过以下方式重新应用它来解决这个问题:

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

虽然这种方法有效但我仍然需要知道我是否可以让Android通过不在布局xml文件中设置视图的ID来完成所有工作(如果允许/可能的话)。