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

Posted

技术标签:

【中文标题】Android TabActivity 和动态 Tabs 屏幕方向问题【英文标题】:Android TabActivity and dynamic Tabs screen orientation issue 【发布时间】:2012-04-19 07:47:43 【问题描述】:

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

因此,鉴于我在 Activity 中有一个从 tabkey 映射到视图的 HashMap,您将如何保存这些数据并恢复它?

【问题讨论】:

【参考方案1】:

好的,我明白了:)

首先,我认为我需要按照here 的描述设置视图的 ID——使用这种方法,android 能够恢复视图状态。但是由于我的动态选项卡都使用相同布局的视图,因此它们的子项都具有相同的 ID,因此 android 将覆盖数据(状态根据视图 ID 保存在稀疏数组中,因此 ID 应该是唯一的)和所有意见看起来一样。我通过手动保存视图状态并通过以下方式重新应用它来解决此问题:

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

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

【讨论】:

以上是关于Android TabActivity 和动态 Tabs 屏幕方向问题的主要内容,如果未能解决你的问题,请参考以下文章

学习Android之第六个小程序新浪微博(ListView和TabActivity)

Android:从 tabActivity 到活动的参数为空

软件测试作业1:android手机应用布局之TabActivity

在 android 中是不是可以在屏幕底部放置 TabActivity 选项卡图标? [复制]

Android TabActivity 中的奇怪选项菜单行为

继承的tabactivity怎么用appcompatactivity代替并实现tabactivity的的效果